JavaFXMediaPlayer切换到状态播放,但不';我不能播放mp3

JavaFXMediaPlayer切换到状态播放,但不';我不能播放mp3,javafx,mp3,media-player,Javafx,Mp3,Media Player,我正在尝试使用JavaFXMediaPlayer播放mp3文件。它加载文件并切换到播放状态,没有任何错误,但不会播放文件,currentTimeProperty也不会更改。我做错了什么 public class Test extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage

我正在尝试使用JavaFXMediaPlayer播放mp3文件。它加载文件并切换到播放状态,没有任何错误,但不会播放文件,currentTimeProperty也不会更改。我做错了什么

public class Test extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        MediaPlayer player = new MediaPlayer(new Media(
                new File("sounds/sound.mp3").toURI().toString()
        ));

        Button btn = new Button("Play");
        btn.setOnAction(event -> player.play());
        VBox pane = new VBox(10, btn);
        pane.setAlignment(Pos.CENTER);
        Scene scene = new Scene(pane, 100, 100);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

我想你忘了一份试试这个

public static void main(String[] args) {
    launch(args);
}

@Override
public void start(Stage primaryStage) throws Exception {
    MediaPlayer player = new MediaPlayer(new Media(
            new File("sounds/sound.mp3").toURI().toString()
    ));

    Button btn = new Button("Play");
    btn.setOnAction(event -> player.play());
    VBox pane = new VBox(10, btn);
    pane.setAlignment(Pos.CENTER);
    Scene scene = new Scene(pane, 100, 100);

    MediaView mediaView = new MediaView(player);
    ((Group)scene.getRoot()).getChildren().add(mediaView);

    primaryStage.setScene(scene);
    primaryStage.show();
}

您提供的代码与我的代码一样工作正常。我不是MediaPlayer和MediaView类的专家,但假设您正确加载媒体,并且没有得到
MediaException:media\u UNAVAILABLE
加载mp3文件时,您的问题可能有两个原因

  • 您的文件格式不受支持。查看Java文档中关于 您将看到支持的mp3格式 是:原始MPEG-1、2和2.5音频;第一层、第二层和第三层;全部的 支持采样频率和比特率的组合。所以如果 您的文件不受支持,您将无法播放它。现在你 可以使用下面的代码检查是否存在任何类型的错误
player.setOneError(()->System.out.println(“错误:+player.getError().toString()))

  • 我以前在使用新的windows操作系统时也遇到过类似的问题。如果您使用的是Windows,您的操作系统可能没有播放视频/音频所需的编解码器。在这种情况下,您的JavaFX应用程序将尝试播放音频,但您不会听到任何声音。为了解决这个问题,你可以尝试安装一些我不熟悉的音频编解码器,但我建议使用K-Lite编解码器包(进行谷歌搜索,你会没事的)

非常感谢!显然,JavaFXMediaPlayer无法处理MPEG ADT。我用AAC编码将文件转换为m4a,这种编码就像一个符咒。