Sound API似乎缺少一种指示声音播放完成的函数。是否有其他方法可以找出声音是否完成?
只需设置这个
sound.setLooping(false);
这样它就不会一遍又一遍地运行。
要检查声音是否正在播放,可以这样做。
创建一个布尔变量。
boolean soundplaying;
if(sound.isPlaying()){
soundplaying =true
}
并记录日志
gdx.app.log("","sound"+soundplaying);
Music
类代替Sound
类,它就拥有了你想要的一切 - 使用isPlaying()
或setOnCompletionListener(..)
和OnCompletionListener
即可。 - monnef您可以通过存储例如play()
和loop()
返回的声音实例ID来跟踪此操作。示例代码:
private Sound sound;
private Long soundId;
...
public void startSound() {
if (soundId != null) {
return;
}
soundId = sound.loop(); // or sound.play()
}
public void stopSound() {
sound.stop(soundId);
soundId = null;
}