我有一个简单的 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();
}
它的字符串声音,因为我从哈希图中得到它。当我打电话给它时
playSound(key, false, 10);
声音会重复 10 次。但是当我再次调用它时(我用一个按钮来做),它只播放了 4-8 次,所以循环不能正常工作。我做错了什么?
谢谢!