大家好我想播放一个JavaFX音频片段,然后睡觉这个音频片段完成所需的时间。我在JavaFX AudioClip中找不到任何方法
我认为AudioClip
不适合这样的事情,也许玩“真正的”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());