1

我有以下代码。没有声音正在播放我不知道我做错了什么。我在指定的目录中有一个名为“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);
}
4

3 回答 3

0

你必须打电话给mediaPlayer.play();某个地方。 setAutoPlay()仅设置自动播放属性。

于 2016-12-22T22:08:01.413 回答
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

在这里它如何下载Image它会帮助你。

于 2016-12-22T22:13:47.013 回答
0

我有同样的问题。我想在游戏的菜单屏幕上播放 4 分钟的 mp3 曲目。我已经从 mp3 转换为 wav。依然没有。然后我尝试了更短的声音(1秒锣声)......它奏效了!然而,声音像是被夹在了中间。好吧,这让我很怀疑,所以我决定在一个线程中运行它并且它有效!然后我切换回主声音,现在它播放得很好。

现在我不明白两件事:

  • 为什么在 Thread 中运行它会有所帮助
  • 为什么 .wav 有效而 .mp3 无效

现在不多,但也许它会对某人有所帮助:)我会在发现后立即更新我的答案!

于 2019-05-01T09:24:26.270 回答