如何以毫秒为单位获取javaFX音频片段的长度[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何以毫秒为单位获取javaFX音频片段的长度[关闭]相关的知识,希望对你有一定的参考价值。

大家好我想播放一个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());

以上是关于如何以毫秒为单位获取javaFX音频片段的长度[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何以毫秒为单位获取当前时间?

如何在 PHP 中以毫秒为单位获取当前时间?

如何像 Java 一样获取自 1970 年以来的当前时间戳(以毫秒为单位)

如何使用 sox 获取所有音频的音频长度?

自Javascript中的unix时代以来,如何以毫秒为单位获取时间? [复制]

如何以毫秒为单位获取firebase服务器的当前时间戳?