[英]java Clip loop not working
我有一個簡單的Clip方法,可以播放小wav聲音。 是的,我現在找到了方法clip.loop(),但是無論如何我都無法理解為什么我的方法無法正常工作。
這是代碼:
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();
}
它的String聲音,因為我將其從哈希圖中刪除了。 當我打電話給
playSound(key, false, 10);
聲音會重復播放10次。 但是,當我再次調用它時(我用一個按鈕進行操作),它只播放4到8次,因此循環無法正常工作。 我在做什么錯?
謝謝!
if(!loop || repeatCount > repeatTime)
應該是OR或AND。 for
循環而不是while
。 open
同一剪輯。 為此,您必須首先獲取一個新的AudioInputStream
以供此Clip
open
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.