0
我有一個簡單的剪輯方法,播放小wav聲音。是的,我現在找到了方法clip.loop(),但無論如何,我不明白爲什麼我的方法不工作。java剪輯循環不起作用
繼承人的代碼:
public void playSound(final String sound, final boolean loop, final int repeatTime){
try {
sounds.get(sound).open();
}
catch(Exception e) {
System.out.println(e);
}
new Thread(new Runnable() {
public void run() {
int repeatCount = 1;
Clip actualClip = sounds.get(sound);
actualClip.setFramePosition(0);
actualClip.start();
while(true){
System.out.println("repeat c: " + repeatCount + ", frames left: " + (actualClip.getFrameLength() - actualClip.getFramePosition()));
if(actualClip.getFramePosition() >= actualClip.getFrameLength()){
actualClip.stop();
actualClip.setFramePosition(0);
actualClip.start();
repeatCount++;
}
if(!loop && repeatCount > repeatTime){
break;
}
}
actualClip.stop();
}
}).start();
}
的絃音,IM因爲...得到它出的HashMap的。當我打電話給它時
playSound(key, false, 10);
聲音重複10次。但是當我再次調用它時(我用一個按鈕來做),它的播放時間只有4-8次,所以循環無法正常工作。我做錯了什麼?
謝謝!
1)爲了更好地提供幫助,請發佈[SSCCE](http://sscce.org/)。 2)'Clip'不需要單獨的'Thread'。 –
我想它應該是'if(!loop || repeatCount> repeatTime)'。順便說一下,爲什麼不使用'for'而不是'while'?它會讓你的代碼更具可讀性。 – Elist
謝謝你......這實際上是一個sscce o.O確定失敗......真的應該和。 – GFP