Audio 如何获取javaFX音频剪辑的长度(以毫秒为单位)

Audio 如何获取javaFX音频剪辑的长度(以毫秒为单位),audio,javafx,duration,Audio,Javafx,Duration,大家好,我想播放一段JavaFX音频片段,并在该音频片段结束时睡觉。我在JavaFX音频剪辑中找不到任何方法我认为音频剪辑不适用于这种情况,也许在这种情况下播放“真实”更合适 您可以尝试这种(不是很优雅)方法:只需睡觉,不时检查剪辑是否仍在播放: AudioClip sound = new AudioClip("mySound.wav"); sound.play(); long start = System.currentTimeMillis(); while (sound.isPlaying

大家好,我想播放一段JavaFX音频片段,并在该音频片段结束时睡觉。我在JavaFX音频剪辑中找不到任何方法

我认为
音频剪辑
不适用于这种情况,也许在这种情况下播放“真实”更合适

您可以尝试这种(不是很优雅)方法:只需睡觉,不时检查剪辑是否仍在播放:

AudioClip sound = new AudioClip("mySound.wav");
sound.play();

long start = System.currentTimeMillis();
while (sound.isPlaying())
{
    Thread.sleep(1000);
}
long duration = System.currentTimeMillis() - start;

System.out.println("Played for " + (duration / 1000) + "seconds.");
您还可以尝试从源代码创建一个
媒体
对象来获取持续时间。然后,将其作为
音频剪辑
播放,并使用
媒体的持续时间
睡眠。这需要初始化适当的FX环境,但:

AudioClip sound = new AudioClip("mySound.wav");
sound.play();
Thread.sleep((long) new Media("mySound.wav").getDuration().toMillis());

当我试图得到我得到的持续时间Nan@Michael我没有足够的经验与fx媒体诊断。也许你可以问一个新问题。好的,非常感谢