【问题标题】:JavaFX can't play mp3 filesJavaFX 无法播放 mp3 文件
【发布时间】:2015-06-08 17:43:41
【问题描述】:

我遵循了这个教程:http://what-when-how.com/javafx-2/playing-audio-using-the-media-classes-javafx-2-part-1/

package audioVideo;

import java.net.URL;

import javafx.application.Application;
import javafx.scene.media.*;
import javafx.stage.*;

public class AudioPlayer1 extends Application
{
    public static void main(String args[])
    {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage)
    {
        URL resource = getClass().getResource("resources/sample.mp3");
        Media media = new Media(resource.toString());
        MediaPlayer mediaPlayer = new MediaPlayer(media);
        mediaPlayer.play();

        primaryStage.setTitle("Audio Player 1");
        primaryStage.setWidth(200);
        primaryStage.setHeight(200);
        primaryStage.show();
    }
}

我在与相应的 .class 文件相同的目录中有相应的资源文件夹,但我仍然无法播放音频。 mp3 文件与教程中的文件不同,但我也有一个 .wav 等价文件,发现 JavaFX 可以开箱即用地播放 *.wav 文件,但不能播放 mp3 文件。怎么回事?

我通过 Eclipse 使用 Ubuntu 15.04 64 位。这不可能是资源问题,因为 .wav 文件与 .mp3 文件位于同一文件夹中,但前者可以播放,而后者不能。我是否需要某些依赖项才能正确播放 mp3 文件?我可以直接从 Ubuntu 播放 mp3 文件。

【问题讨论】:

  • 你能直接从 Ubuntu 播放 mp3 吗? (您需要“受限”代码才能播放 mp3;所以当 ubuntu 不播放它们时……您需要在使用 java 之前添加相应的包)
  • 是的,我可以直接从 Ubuntu 播放 mp3 文件。我将使用该信息更新问题。
  • 那么,如果这不是问题,那么您的“它不工作”实际上是什么样子的?是否有异常,eclipse控制台中的消息,???
  • 你能上传一个示例 .mp3 给我试用吗?
  • Ubuntu 15.x 还不是certified system configuration,也许它会工作,也许它不会(14.x 已通过认证)。您应该根据认证要求检查您的系统,并确保您安装了正确的 glib 和 libav 库。您应该在问题中包含异常跟踪。您还应该包括media error handling code。

标签: java audio javafx


【解决方案1】:

首先,导入以下内容:

import java.nio.file.Paths;

然后,当您创建媒体时,请执行以下操作:

Media media = new Media(("yourAudio.fileExtension").toUri().toString());
MediaPlayer player = new MediaPlayer(media);

这应该可以解决问题(至少对于 mp3)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多