Sound API 似乎缺少一个指示声音已播放完毕的函数。有没有其他方法可以确定声音是否完成?
问问题
7078 次
3 回答
8
据我所知,OpenAL 和 Android 的底层声音后端甚至不会在内部跟踪信息,尽管音乐 API 根据文档具有 isPlaying() 函数和 getPosition() 函数,但并非没有向 libgdx 提交补丁。
于 2012-07-28T21:54:21.690 回答
0
只需设置这个
sound.setLooping(false);
这样它就不会一次又一次地运行。
并检查声音是否正在播放。
做一个布尔变量
boolean soundplaying;
在渲染方法中这样做
if(sound.isPlaying()){
soundplaying =true
}
并做一个日志
gdx.app.log("","sound"+soundplaying);
于 2013-10-05T12:35:58.370 回答
-1
您可以通过存储例如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;
}
如果您不想stopSound()
从客户端代码调用,您可以只调用它startSound()
而不是return
, 以确保停止任何先前的声音。
于 2020-02-22T17:58:13.397 回答