Android在延迟后播放声音

时间:2012-06-18 04:17:21

标签: android audio

我必须在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实例?

此致

2 个答案:

答案 0 :(得分:6)

使用SoundPool进行低延迟媒体播放,而不是MediaPlayer

答案 1 :(得分:4)

我看到这已经有了一个公认的答案,但我想补充一点,目前还没有完整的解决方案:Android目前的音频延迟非常大。开发人员仍在等待一个好的解决方案。

此问题涉及NDK,但问题是一般性的:

http://code.google.com/p/android/issues/detail?id=3434