我正在为两个玩家的同一设备游戏编写代码。
每当一个玩家按下某个特定按钮时,我想要播放声音。我发现的声音持续不到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();
答案 0 :(得分:0)
使用SoundPool,而不是媒体播放器。
媒体播放器一次只能播放一种声音。您需要2个MediaPlayers才能播放2种不同的声音。此外,当MediaPlayer从磁盘加载时,它将在播放开始时具有更高的延迟,而SoundPool将资源存储在RAM中。
所以,使用SoundPool。它专为您的问题而设计。