javafx MediaPlayer没有播放音频

时间:2016-07-10 01:31:44

标签: java audio javafx javafx-8 media-player

在我的JavaFX应用程序中,我将以下代码放在方法中。我的目标是播放url的音频,其中url是指向MP4文件的http链接。

Media media = new Media(url);
MediaPlayer mediaPlayer = new MediaPlayer(media);
mediaPlayer.setAutoPlay(true);
mediaPlayer.setCycleCount(MediaPlayer.INDEFINITE);

当我调用该方法时,什么都没有播放,但我没有收到错误。此外,在使用mediaPlayer检查mediaplayer.getStatus()的状态时,我会获得UNKNOWN。当我添加MediaView时,就像这样:

MediaView mediaView = new MediaView(mediaPlayer);
grid.add(mediaView, 0, 0);

音频和视频播放。但是我不希望播放视频,因此我希望使用MediaView避免额外开销。

如果我将MediaPlayer设为静态变量,则播放音频,但我宁愿不使用静态变量。为什么初始代码不起作用?

1 个答案:

答案 0 :(得分:0)

JavaFX中的MediaPlayer显然存在问题,并且已经存在很多年了。尽管如此,还是有解决方法的。

一种解决方法是:创建用户界面时,创建MediaViewer组件。即使不将其包含在布局中,也可以将其声明为对象属性,以使其准备就绪并可用。

private MediaView viewer = new MediaView();

然后:当您要播放音频文件时,请在调用“播放”方法之前将MediaPlayer附加到MediaView组件。

viewer.setMediaPlayer(mediaPlayer);

这似乎导致音频片段正常播放。