现在,我认为这可能是由于我的 gui 代码中存在任何数量的问题,但是,我想问一下,以下代码有什么明显的错误吗?
public class music
{
static AudioClip currentMusic;
public static void playMusic()
{
currentMusic = new AudioClip(Paths.get("src/test.mp3").toUri().toString());
currentMusic.setCycleCount(INDEFINITE);
currentMusic.play();
}
}
AudioClip 可以正常加载,正常播放,但无论setCycleCount
值是多少,它总是在播放一次后停止。
尝试在musicPlaying = false
之前添加调用方playMusic();
。
musicPlaying = false;
playMusic();
根据AudioClip
的文档,如果您有setCycleCount(INDEFINITE)
,那么它将继续循环,直到调用stop()
。假设这一点,我会检查你的其余代码,以确保你在某处没有stop()
调用。
显然,由于该问题在 ReadyPlayer2 中很常见,因此这似乎是某种错误。像这样的循环可能会起作用,Media
类当然可以工作,尽管AudioClip
有一些缺点。
距离上次回答已经有一段时间了,但我想我找到了解决方案。显然循环不适用于.mp3文件,将文件转换为.wav为我解决了问题!