如何以毫秒为单位获取 javaFX 音频剪辑的长度
How can I get the length of a javaFX audio clip in millis
大家好,我想播放一个 JavaFX 音频剪辑,并在完成此音频剪辑所需的时间休眠。我在 JavaFX AudioClip
中找不到任何方法
我认为AudioClip
不适合这种情况,也许玩"real" Media
更适合这种情况。
您可以尝试这种(不是很优雅)方法:只是睡觉,不时检查剪辑是否仍在播放:
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.");
您也可以尝试从您的源创建一个 Media
对象来获取持续时间。然后,将其播放为 AudioClip
并使用 Media
的持续时间进行睡眠。不过,这需要初始化适当的 FX 环境:
AudioClip sound = new AudioClip("mySound.wav");
sound.play();
Thread.sleep((long) new Media("mySound.wav").getDuration().toMillis());
大家好,我想播放一个 JavaFX 音频剪辑,并在完成此音频剪辑所需的时间休眠。我在 JavaFX AudioClip
中找不到任何方法我认为AudioClip
不适合这种情况,也许玩"real" Media
更适合这种情况。
您可以尝试这种(不是很优雅)方法:只是睡觉,不时检查剪辑是否仍在播放:
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.");
您也可以尝试从您的源创建一个 Media
对象来获取持续时间。然后,将其播放为 AudioClip
并使用 Media
的持续时间进行睡眠。不过,这需要初始化适当的 FX 环境:
AudioClip sound = new AudioClip("mySound.wav");
sound.play();
Thread.sleep((long) new Media("mySound.wav").getDuration().toMillis());