是否可以在没有延迟的情况下开始使用JavaFX MadiaPlayer

是否可以在没有延迟的情况下开始使用JavaFX MadiaPlayer,javafx,mp4,Javafx,Mp4,我需要播放mp4文件一个接一个没有延迟(小于5-10毫秒)。我不想使用vlc或xugler 可能有一些解决方案可以让播放器等待我的触发器。在play()之后通过注入代码通知()(但MediaPlayer是最终的): 我只需要mp4文件。我重新测试了MediaPlayer。现在,我等待就绪状态并开始玩。潜伏期为3-12ms。不太好,但可以接受 new Thread(() -> { while (mediaPlayer.getStatus() != MediaPlayer.Status

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

可能有一些解决方案可以让播放器等待我的触发器。在play()之后通过注入代码通知()(但MediaPlayer是最终的):


我只需要mp4文件。

我重新测试了MediaPlayer。现在,我等待就绪状态并开始玩。潜伏期为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();
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();