安卓在延迟后播放声音



我必须在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) { }
}

问题是事件和声音之间存在~500ms的延迟。我可以以某种方式优化播放声音,也许,为每种声音创建一个专用的 MediaPlayer 实例?

问候

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

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

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

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

最新更新