E / MediaPlayer:错误(-19,0) - 无缘无故

时间:2017-03-11 17:26:28

标签: android android-mediaplayer

我已经阅读了关于此错误的无数主题,但是没有一个与我有同样的问题。

我正在接受

E / MediaPlayer:错误(-19,0)

E / MediaPlayer:错误(-19,0)

然而,

错误,音乐甚至没有播放。在最初的几次尝试中,它运行得很好,但有一次音乐完全播放,然后应用程序关闭,从那时起每次打开应用程序时,音乐甚至没有开始,< / p>

我的代码非常简单,这是我用来测试的代码(在主要活动中的onCreate里面):

    mp1 = MediaPlayer.create(this,R.raw.shavingmirror_bgmusic);
    mp1.start();

过去工作的原始代码,但现在由于某种原因没有(位于新类的onCreate内,而不是主要活动中),它基本上只有一个SeekBar,而音乐的音量应该相应地向上和向下SeekBar:

public class settings extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener {

MediaPlayer mp;
SeekBar sb;
AudioManager am;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.settings);
    sb = (SeekBar)findViewById(R.id.volumesb);
    mp = MediaPlayer.create(this,R.raw.shavingmirror_bgmusic);
    mp.start();
    mp.setLooping(true);

    am=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
    int max = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    sb.setMax(max);
    sb.setProgress(max/2);
    am.setStreamVolume(AudioManager.STREAM_MUSIC,max/2,0);
    sb.setOnSeekBarChangeListener(this);

}

@Override
protected void onPause() {
    super.onPause();
    mp.release();
}


@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
    am.setStreamVolume(AudioManager.STREAM_MUSIC,progress,0);
}

1 个答案:

答案 0 :(得分:1)

似乎问题是我没有释放mp,导致它崩溃并且再也没有工作了。为了解决这个问题:

  • 重新启动模拟器。
  • 添加一些版本(mp.release();)

希望这个问题不会重演,因为现在我每次都会释放mp。如果它重复,我会更新。