如果正在运行,请重启Media Player声音

时间:2013-08-22 17:11:01

标签: java android android-mediaplayer

我正在为两个玩家的同一设备游戏编写代码。

每当一个玩家按下某个特定按钮时,我想要播放声音。我发现的声音持续不到1秒。另一个玩家可以按下类似的按钮,它会播放相同的声音。

不幸的是,如果声音已经播放,按钮不会发出我想要的声音。我试着停下来准备,但它似乎没有起作用 - 是不是因为我做得太快了?有更好的方法吗?

 if (mpSwap.isPlaying())
{
//Stop it, and restart it
mpSwap.stop();
try
{
mpSwap.prepare();
} 
catch (IllegalStateException e)
{
// TODO Auto-generated catch block
}
catch (IOException e)
{
//TODO Auto-Generated catch block
}               

mpSwap.start();

1 个答案:

答案 0 :(得分:0)

使用SoundPool,而不是媒体播放器。

媒体播放器一次只能播放一种声音。您需要2个MediaPlayers才能播放2种不同的声音。此外,当MediaPlayer从磁盘加载时,它将在播放开始时具有更高的延迟,而SoundPool将资源存储在RAM中。

所以,使用SoundPool。它专为您的问题而设计。