微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaFX AudioClip 不播放某些 mp3 文件

如何解决JavaFX AudioClip 不播放某些 mp3 文件

我在使用 AudioClip 和 JavaFX 播放 mp3 文件时遇到了一些问题。

我的代码是这样的:

// define String path to mp3 file
myFilePath = "path/to/file.mp3";

// Create an AudioClip Object from path
audioToPlay = new AudioClip(Objects.requireNonNull(getClass().getResource(audioToPlay)).toExternalForm());

// play the AudioClip
audioToPlay.play();

我正在播放的音频文件都是 mp3 文件,它们都很短(

我不知道为什么 10-20% 不起作用;使用我的媒体播放器和浏览器,它们可以完美播放。

问题是因为我使用的是 AudioClip 吗?我应该使用其他东西来播放我的短音频文件吗?

编辑: myFilePath 定义为 String,audioToPlay 定义为 AudioClip 对象。

解决方法

AudioClip 适用于可以保存在内存中的短文件。此问题可能与您调用 play() 方法的方式或时间有关。通过单击按钮调用 play 方法时是否会发生这种情况,其中 GUI 保持打开状态?有些人没有意识到播放是一个守护线程。如果程序触发声音,然后在声音播放完毕之前完成并退出,则播放行为不会阻止程序关闭。还有 FWIW,一旦加载到内存中,就无需一遍又一遍地重新加载 AudioClip

我想补充一点:在我看来,有时 Java 不能优雅地处理会话中的第一个音频调用,经常会出现口吃。因此,我经常在程序开始时播放“无声”声音,以使事情顺利进行。只是提一下,以防在程序刚开始运行时出现问题。如果您使用 GUI(带有发出声音的按钮),那么您可以测试其他调用是否会重复该问题,从而帮助验证是声音文件还是环境问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。