JavaFX MediaPlayer使用mp4创建数百个线程

时间:2014-03-28 12:47:07

标签: javafx javafx-2

使用以下代码时

Media media = new Media("video.mp4");
MediaPlayer mediaPlayer = new MediaPlayer(media);
MediaView mv = new MediaView(mediaPlayer);
mediaPlayer.setAutoPlay(true);
mediaPlayer.setCycleCount(MediaPlayer.INDEFINITE);

视频效果很好。但是,在调试代码的其他一些方面时,我注意到媒体播放器似乎正在创建疯狂的线程。调试器显示

  

守护程序线程[Thread-X](正在运行)

其中X在不断增长。看起来线程正在被破坏,但计数不到一分钟就创建了超过1000个线程。

如果我使用相同的设置,但只用mp3替换mp4,则不会发生这种情况。

这里有什么想法?

1 个答案:

答案 0 :(得分:0)

嗯,这不是错误,而是JavaFX MediaPlayer的默认设计。很遗憾,但我们需要等到开发团队决定替换用于渲染视频的当前GLib

Kirill Kirichenko JIRA提出的类似问题进行了陈述,并引用:

  

您可以观察多个线程,因为我们附加/分离本机线程   来自每个帧的原生层。这是设计现在。

原因是他在另一个JIRA上给出了我的引用:

  

这是因为每次调用当前JVM上的AttachCurrentThread   时间有一个框架。我们切换到将来可以修复   较新的GLib。目前,这是最安全的呈现方式,而不是   崩溃jvm。