从命令行运行应用程序时,JavaFX 8视频播放冻结

时间:2015-07-27 09:27:33

标签: java video javafx javafx-8 mp4

当我从Eclipse IDE运行这个JavaFX 8应用程序(视频播放测试)时,一切都很好。应用程序无限期地循环播放视频。 但是当我从命令行运行此应用程序时:

java -jar test-javafx8-video-playback-jar-with-dependencies.jar

它只播放几秒钟然后冻结播放。 这是一个应用程序源代码: test-javafx8-video-playback

请指教,谢谢。

好的,这是播放视频的代码段:

private void playBallMixingAnimation() {
    Media media = new Media(KenoKaironMain.getResourceURIFromProperties(KenoKaironMain.BALL_MIXER_URI_KEY));
    MediaPlayer mediaPlayer = new MediaPlayer(media);
    mediaPlayer.setCycleCount(MediaPlayer.INDEFINITE);
    mediaPlayer.setMute(true);
    mediaPlayer.setAutoPlay(true);
    animMediaView.setMediaPlayer(mediaPlayer);
}

正如我所说的,它在Eclipse中无限循环,但是当我从命令行启动应用程序时却没有。 Eclipse使用的是jdk1.8.0_51,而Windows / OSX使用的是jre1.8.0_51,我有足够的RAM用于这个小应用程序。

1 个答案:

答案 0 :(得分:0)

这是我发现的。

所有关于支持的媒体格式。 您可能知道JavaFX支持这种视频格式:

  1. 带MP3和VP6的FLV容器

  2. 带有AAC,H.264或两者的MPEG-4容器

  3. 只有具有On2 VP6编码的FLV视频文件才会无限循环播放,无论是从Eclipse IDE还是从命令行开始。

    带有AAC或H.264的MPEG-4容器将仅从Eclipse IDE无限循环播放,并且在从命令行启动后首次循环时将冻结。

    我使用Oracle FLV示例进行了测试:http://download.oracle.com/otndocs/products/javafx/oow2010-2.flv并使用此FLV示例进行了确认:http://www.mediacollege.com/video-gallery/testclips/20051210-w50s.flv

    对于MPEG-4,您可以自己尝试,并确保它无法在命令行中无限循环。

    我的测试配置是: OS X 10.9.5,Java JDK 1.8.0_51,Eclipse Luna(4.4.1)和上面发布的代码片段。