在JMF中使用MediaPlayer类的音频播放器



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()方法提供一个参数。 文档。指定StringMediaLocator实例。

我避免使用String实例来表示基于文件或 URL 的源。 如果一种方法需要FileURL - 给它一个FileURL。 这留下了最好的选择作为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); 
// ...

一般提示

  1. JMF 是一个废弃的 API。
  2. 由于您似乎只对音频感兴趣,因此请考虑使用Java Sound。 它可以很好地播放音频样本,是核心Java的一部分,并且与JMF的一小部分一起,可以播放MP3格式(有关详细信息,请参阅链接(。
  3. 你似乎对正在使用的废弃API,Eclipse和调试很陌生。 也许你现在应该专注于更简单的事情。 介质处理是一个高级主题。

相关内容

  • 没有找到相关文章

最新更新