【问题标题】:Audio Player using MediaPlayer class in JMF在 JMF 中使用 MediaPlayer 类的音频播放器
【发布时间】:2012-06-23 09:50:33
【问题描述】:

JMF 提供了一个类MediaPlayer,可以用作全功能播放器。但是,我找不到播放音频文件的方法。所用代码的一些sn-ps。

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

..on setMediaLocation() 方法。

谁能告诉我如何使用MediaPlayer 类来播放音频文件?我的编码有什么问题?

【问题讨论】:

  • @AndrewThompson eclipse 显示此错误:“在 setMediaLocation() 方法上标记“setMediaLocation”的语法错误,此标记后需要标识符”。我导入了“javax.media.bean.playerbean.MediaPlayer;”

标签: java eclipse compiler-errors syntax-error jmf


【解决方案1】:

源代码中没有真正意义上的..setMediaLocation(location of file); 吗?我以为是转述了。

在这种情况下,答案是为setMediaLocation() 方法提供一个参数。文档。指定 StringMediaLocator 实例。

我避免使用 String 实例来表示基于文件或 URL 的源。如果一个方法需要FileURL - 给它一个FileURL。剩下的最佳选择是MediaLocator(URL)。这就是它的发展方式。首先我们需要一个URL - 有许多不同的方法可以得到一个,这取决于 URL 的来源。例如。互联网、本地文件系统上的文件或应用程序随附的 Jar 中的嵌入式资源。最后两个可能是这样的:

基于文件的 URL

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 和调试,您似乎很陌生。也许你现在应该专注于更简单的事情。媒体处理是一个高级主题。

【讨论】:

  • 不,“文件的位置”被解释了。我将字符串作为文件的位置传递,因为 MediaLocator () 也接受字符串。
猜你喜欢
  • 1970-01-01
  • 2015-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多