发生碰撞时如何停止声音重新启动

时间:2012-07-13 10:05:06

标签: android andengine audio soundpool

目前我的代码在使用andEngine和Box2D以及墙壁的游戏中的任何对象之间有联系时发出声音,我的问题是当与任何对象进行联系时它再次启动我理解为什么会发生这种情况。如果可能的话,我想要做的就是继续播放声音,同时播放它以进行另一次碰撞。我想我可能需要使用线程,但我不确定如何在java for android中执行此操作。

@Override
public void beginContact(Contact contact)
{
    Rattle.this.mExplosionSound.play();
}

更新:我似乎无法解决这个问题,但我知道我需要做的是同时多次播放这个声音,我已经尝试了线程和soundPool但是没有运气也没有确定该怎么做。

2 个答案:

答案 0 :(得分:1)

似乎你只有一个声音实例。然后你用两次相同的声音来播放,因此它会停止播放并从头开始。

想象一下有一台CD播放器 - 按下播放,音乐开始播放。再次按下播放,播放器从头开始读取音轨。你需要的是两个玩家,因此你可能需要两个相同声音的实例。

(我对Android上的声音没有多少经验,所以我可能错了,请大家劝告。)

答案 1 :(得分:-1)

即使我在一段时间后开发游戏,我也发现了类似的问题。您应该使用SoundPool播放短暂的声音,如崩溃和碰撞。这里有一些很好的链接帮助了我。 Link 1link 2