JMF提供了一个类MediaPlayer
,可以用作功能齐全的播放器。但是,我找不到播放音频文件的方法。使用的代码的一些片段。
import javax.media.bean.playerbean.MediaPlayer;
// ....
MediaPlayer mp = new MediaPlayer();
mp.setMediaLocation(location of file); // <- syntax error!
mp.start();
但它不起作用。Eclipse 显示此错误:
Syntax error on token "setMediaLocation", Identifier expected after this token
..在setMediaLocation()
方法上。
有人可以告诉我如何使用MediaPlayer
类来播放音频文件吗? 我的编码有什么问题?
你没有字面上的..setMediaLocation(location of file);
在源中吗?我以为这是转述的。
在这种情况下,答案是为setMediaLocation()
方法提供一个参数。 文档。指定String
或MediaLocator
实例。
我避免使用String
实例来表示基于文件或 URL 的源。 如果一种方法需要File
或URL
- 给它一个File
或URL
。 这留下了最好的选择作为MediaLocator(URL)
。 事情是这样的。 首先,我们需要一个URL
- 有许多不同的方法来获取一个,具体取决于URL的来源。 例如,互联网、本地文件系统上的文件或随应用程序一起提供的 Jar 中的嵌入式资源。 最后两个可能是这样的:
基于文件的网址
File mediaFile = new File("user.mp3");
URL mediaURL = mediaFile.toURI().toURL();
// ...
嵌入的资源网址
URL mediaURL = this.getClass().getResource("/path/to/our.mp3");
// ...
一旦有一个mediaURL
实例,我们就可以创建一个定位器并在方法中使用它。
使用网址
MediaLocator mediaLocator = new MediaLocator(mediaURL);
MediaPlayer mp = new MediaPlayer();
mp.setMediaLocation(mediaLocator);
// ...
一般提示
- JMF 是一个废弃的 API。
- 由于您似乎只对音频感兴趣,因此请考虑使用Java Sound。 它可以很好地播放音频样本,是核心Java的一部分,并且与JMF的一小部分一起,可以播放MP3格式(有关详细信息,请参阅链接(。
- 你似乎对正在使用的废弃API,Eclipse和调试很陌生。 也许你现在应该专注于更简单的事情。 介质处理是一个高级主题。