【问题标题】:E/MediaPlayer: error (-19, 0) - for no reasonE/MediaPlayer: 错误 (-19, 0) - 无缘无故
【发布时间】:2017-03-12 08:07:58
【问题描述】:

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

我收到了

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

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

错误,但是,音乐甚至无法播放。在最初的几次尝试中,它运行良好,但有一次音乐完全播放,然后应用程序关闭,从那时起,每次我打开应用程序时,音乐甚至无法启动

我的代码非常简单,这是我用来测试的代码(在主活动的 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);
}

【问题讨论】:

    标签: android android-mediaplayer


    【解决方案1】:

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

    • 重启模拟器。
    • 向其中添加一些版本 (mp.release();)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-25
      • 1970-01-01
      • 2022-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多