0

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类来播放音频文件吗?我的编码有什么问题?

4

1 回答 1

2

你不是字面上..setMediaLocation(location of file);有源?我以为是转述了。

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

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

基于文件的 URL

File mediaFile = new File("user.mp3");
URL mediaURL = mediaFile.toURI().toURL();
// ...

嵌入资源 URL

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