目前,当我的游戏中使用 andEngine 和 Box2D 的任何对象与墙壁接触时,我的代码会播放声音,我遇到的问题是,当与任何对象接触时,它会再次开始,我明白为什么会发生这种情况。如果可能的话,我想做的是继续播放声音,同时也播放它以进行另一次碰撞。我想我可能需要使用线程,但我不确定如何在 java for android 中执行此操作。
@Override
public void beginContact(Contact contact)
{
Rattle.this.mExplosionSound.play();
}
更新:我似乎无法解决这个问题,但我知道我需要做的是同时多次播放这个声音,我尝试过线程和 soundPool 但都没有运气,但仍然不确定要做什么做。
最佳答案
看来您只有一个声音实例。然后你两次调用相同的声音播放,因此它停止播放并从头开始。
想象一下拥有一台 CD 播放器 - 您按下播放键,音乐开始播放。您再次按下播放键,播放器将从头开始阅读轨道。您需要的是两个播放器,因此您可能需要两个相同声音的实例。
(我对Android上的声音没有太多经验,所以我可能是错的,请谨慎接受建议。)
关于android - 发生碰撞时如何停止声音重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11468331/