当我从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用于这个小应用程序。
答案 0 :(得分:0)
这是我发现的。
所有关于支持的媒体格式。 您可能知道JavaFX支持这种视频格式:
带MP3和VP6的FLV容器
带有AAC,H.264或两者的MPEG-4容器
只有具有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)和上面发布的代码片段。