尝试停止并再次播放声音时出现错误 E/MediaPlayer: error (1, -19)

Kir*_*ran 2 android android-mediaplayer

我有多个按钮,点击它们时我想要一个声音。我的代码是这样的

button.setOnClickListener(new Button.OnClickListener() {
          @Override
          public void onClick(View view) {                  
            if(mSound != null && mSound.isPlaying()){
                mSound.stop();
                mSound.reset();
                mSound.release();
                mSound = null;
            }
            mSound = new MediaPlayer();
            mSound = MediaPlayer.create(getApplicationContext(), R.raw.button);
            mSound.start();
            }
        });
Run Code Online (Sandbox Code Playgroud)

在 OnCreate 中,我像这样初始化了 mSound,

mSound = new MediaPlayer();
mSound = MediaPlayer.create(this, R.raw.button);
Run Code Online (Sandbox Code Playgroud)

我收到错误 (1,-19) 以及 (0,38)。

注意:这不是重复的问题。我尝试了之前提出的所有问题的每个答案,但没有任何效果。

Waq*_*ary 5

根据文档失败的原因有几个,主要是

调用 release() 失败

并建议您捕获错误并恢复。

某些播放控制操作可能会由于各种原因而失败,例如不支持的音视频格式、音频/视频交错不良、分辨率太高、流媒体超时等。因此,在这些情况下,错误报告和恢复是一个重要的问题。

试试这个答案或更好的方法来捕捉错误。或者试试下面的代码,释放内存中的对象。

mSound = MediaPlayer.create(getApplicationContext(), R.raw.button);
mSound.start();

mSound.setOnCompletionListener(new OnCompletionListener() {
    public void onCompletion(MediaPlayer mp) {
        mp.release();

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