我必须在GUI事件上播放声音,例如点击按钮等。为此,我从WebView调用以下本机代码:
MediaPlayer _SoundPlayer = new MediaPlayer();
private void playSound(String sound)
{
_SoundPlayer.reset();
try
{
AssetFileDescriptor afd = getAssets().openFd("sound/" + sound + ".mp3");
_SoundPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
_SoundPlayer.prepare();
_SoundPlayer.start();
}
catch (Exception e) { }
}
问题是事件与声音之间有500毫秒的延迟。我可以以某种方式优化播放声音,也许,为每种声音创建专用的MediaPlayer实例?
此致
答案 0 :(得分:6)
使用SoundPool
进行低延迟媒体播放,而不是MediaPlayer
。
答案 1 :(得分:4)
我看到这已经有了一个公认的答案,但我想补充一点,目前还没有完整的解决方案:Android目前的音频延迟非常大。开发人员仍在等待一个好的解决方案。
此问题涉及NDK,但问题是一般性的: