Javafx音频剪辑不循环

Javafx音频剪辑不循环,java,loops,javafx,playback,Java,Loops,Javafx,Playback,现在,我假设这可能是由于gui代码中的许多问题造成的,但是,我想问,下面的代码有没有明显的错误 public class music { static AudioClip currentMusic; public static void playMusic() { currentMusic = new AudioClip(Paths.get("src/test.mp3").toUri().toString()); currentMusi

现在,我假设这可能是由于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();
    }
}

音频剪辑加载正常,播放正常,但无论
setCycleCount
值是多少,播放一次后总是停止播放。

尝试添加调用者
playMusic()
musicPlaying=false之前

musicPlaying = false;
playMusic();

根据
AudioClip
的文档,如果您有
setCycleCount(不确定)
,它将继续循环,直到调用
stop()
。假设是这样,我会检查代码的其余部分,以确保您在某处没有调用
stop()

显然,由于ReadyPlayer2经常遇到这个问题,这似乎是某种错误。像这样的循环可能会起作用,
媒体
类肯定会起作用,尽管
音频剪辑
有一些缺点,我知道上次回答已经有一段时间了,但我想我找到了解决方案。显然循环不适用于.mp3文件,将文件转换为.wav为我解决了这个问题

什么也没发生。事实上,忘记
stopMusic()函数。我从问题中删除了它,因为它一点也不会改变结果。尝试设置setCycleCount(/*文件长度的数字*/)尝试编写
if(currentMusic.isplay()){playMusic();}或者{currentMusic.play();}
这很奇怪,我的代码中没有任何东西可以与此交互。。。我知道这听起来很模糊。如果我什么也没得到,我会尝试创建一个。我刚刚测试过,只需使用hello world并让按钮启动
音频剪辑
,就得到了相同的结果。使用
setCycleCount(2)
setCycleCount(不确定)
只播放一次测试。我还添加了一个
while
循环,在它开始后,检查
isplay()
返回值以查看它是否认为它仍在播放,但在播放一次后它确实变为
false
。显然JavaFX8中有一些bug,那么?我想人们可以使用一个循环,在它停止后继续重新启动它,但这很粗糙,而且可能是资源密集型的。我将尝试使用一个通用的
媒体
类,尽管它与
音频剪辑
相比似乎有很多缺点。谢谢你的帮助^_^