4

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

问候,

4

2 回答 2

6

用于SoundPool低延迟媒体播放,而不是MediaPlayer.

于 2012-06-18T04:19:41.643 回答
4

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

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

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

于 2012-06-18T14:29:25.160 回答