是否可以无延迟地开始使用JavaFX MadiaPlayer

时间:2016-03-24 09:11:50

标签: javafx mp4

我需要一个接一个地播放mp4文件而没有延迟(小于5-10ms)。我不想使用vlc或xugler。

可能有一些解决方案让播放器在play()之后等待我的trigger.notify()注入代码(但MediaPlayer是最终的):

Object trigger = new Object();
synchronized (trigger) {
    trigger.wait();
}

我需要AudioClip但需要mp4文件。

1 个答案:

答案 0 :(得分:0)

我重新测试了MediaPlayer。现在我等待READY状态并开始播放。延迟时间为3-12ms。它不是很好,但它是可以接受的。

new Thread(() -> {
    while (mediaPlayer.getStatus() != MediaPlayer.Status.READY) {
        try {
            Thread.sleep(5);
        } catch (InterruptedException ex) {
            System.out.println("Sleep was interrupted.");
        }
    }
    long before = System.currentTimeMillis();
    mediaPlayer.play();
    while (mediaPlayer.getStatus() != MediaPlayer.Status.PLAYING) {}
    long after = System.currentTimeMillis();
    System.out.println("latency " +(after - before));
}).start();