JavaFx音频文件无法播放

时间:2016-12-22 20:17:38

标签: java audio media javax

我有以下代码。没有声音播放我不知道我做错了什么。我有一个名为" Test"在指定的目录中。它是.mp3格式。

@Override
public void start(Stage stage) throws Exception
{
    Media sound = new Media("file:///C:/Users/name/Music/HQ/Test.mp3");
    MediaPlayer mediaPlayer = new MediaPlayer(sound);
    mediaPlayer.setAutoPlay(true);

    VBox root = new VBox();
    root.getChildren().addAll();

    Scene scene = new Scene(root, 500, 500);
    stage.setScene(scene);
    stage.show();

}

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

3 个答案:

答案 0 :(得分:0)

你必须在某处调用mediaPlayer.play();setAutoPlay()仅设置autoPlay属性。

答案 1 :(得分:0)

1)如果它在你的项目中的[resources/music/test.mp3]中的.mp3文件:

Media media = null;
try {
  media = new Media(getClass().getResource("/music/Test.mp3").toURI().toString());
} catch (URISyntaxException e) {
  e.printStackTrace();
} 

2)如果它在项目之外,例如file:///C:/Users/name/Music/HQ/Test.mp3

 Media media = null;
 try {
   media = new Media("file:C:/Users/name/Music/HQ/Test.mp3");
 } catch (URISyntaxException e) {
   e.printStackTrace();
 } 

还要看看这个问题:Getting a mp3 file to play using javafx

here如何下载Image它会对您有所帮助。

答案 2 :(得分:0)

我有同样的问题。我想在游戏的菜单屏幕上播放4分钟的mp3曲目。我已经从mp3转换为wav。依然没有。然后我尝试了较短的声音(1秒的锣声)...并奏效了!但是声音听起来像是在中间切开了。 好吧,这让我感到怀疑,所以我决定在线程中运行此命令,它可以正常工作!然后我切换回主要声音,现在可以正常播放了。

目前我不了解两件事:

  • 为什么在Thread中运行此功能有帮助
  • .wav为什么起作用,.mp3为何不起作用

目前还不多,但也许会对某人有所帮助:)我一发现就会立即更新答案!