Javafx音频剪辑不循环
现在,我假设这可能是由于gui代码中的许多问题造成的,但是,我想问,下面的代码有没有明显的错误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
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,那么?我想人们可以使用一个循环,在它停止后继续重新启动它,但这很粗糙,而且可能是资源密集型的。我将尝试使用一个通用的媒体
类,尽管它与音频剪辑
相比似乎有很多缺点。谢谢你的帮助^_^