重复播放后Mediaplayer错误(-19,0)

Mic*_*ick 43 android android-mediaplayer

我有一个游戏,当一个关卡完成时会播放声音.一切正常,但在重复10或20次后,logcat突然报告:"MediaPlayer错误(-19,0)"和/或"MediaPlayer启动状态0调用"并且声音不再生成.

我最初的所有声音都是mp3格式,但是在阅读ogg可能更可靠之后,我将它们全部转换为ogg,但错误看起来是一样的.

知道如何解决这个问题吗?

Gab*_*fka 69

我遇到了同样的问题,我通过添加以下代码来解决它以释放播放器:

mp1 = MediaPlayer.create(sound.this, R.raw.pan1);
mp1.start();
mp1.setOnCompletionListener(new OnCompletionListener() {
    public void onCompletion(MediaPlayer mp) {
        mp.release();

    };
});
Run Code Online (Sandbox Code Playgroud)

  • 非常适合自动释放播放器完成后,非常感谢 (3认同)

5hs*_*sba 61

我认为你没有发布用于播放声音的媒体播放器.你需要释放()媒体播放器,否则资源不会被释放,你很快就会失去内存(因为你下次再分配它们).所以,我认为你可以玩两次甚至三次......但不会多次释放资源


Akh*_*hil 15

当您播放小型音效时,MediaPlayer 不是一个好的选择,因为用户可以很快点击多个按钮,您将不得不为所有这些按钮创建一个不会同步发生的MP对象.这就是为什么你没有听到每次点击的声音.转到SoundPool类,它允许您将较小的声音保存在内存中,您可以随时播放它们,而不会出现媒体播放器中的任何延迟.http://developer.android.com/reference/android/media/SoundPool.html这是一个很好的教程:http://www.anddev.org/using_soundpool_instead_of_mediaplayer-t3115.html