android - E/MediaPlayer : error (-19, 0) - 无缘无故

标签 android android-mediaplayer

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

我得到了

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

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

错误,然而,音乐甚至不播放。在最初的几次尝试中,它运行完美,但有一次音乐完全播放,然后应用程序关闭,从那以后每次我打开应用程序时,音乐都甚至没有开始

我的代码非常简单,这是我用来测试的代码(在主要 Activity 的 onCreate 内部):

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

原来的代码曾经可以工作,但现在由于某种原因不能工作(位于新类的 onCreate 中,而不是在主要 Activity 中),它基本上只有一个 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);
}

最佳答案

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

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

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

关于android - E/MediaPlayer : error (-19, 0) - 无缘无故,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42738318/

相关文章:

android - 单击通知栏后 Activity 未恢复

android - gradle构建无法解决依赖关系

java - MainActivity 和 BaseActivity 有什么区别?

Android mediaPlayer - 有 "isPrepared()"或 "getStatus()"方法吗?

java - Android - 动态更改在媒体播放器中播放的文件

android - 在Android中重复播放音频

android - 为什么MediaPlayer中的音频不循环?

java - 如何仅在带有 ImageView 小部件的 xml 动画期间使用不同的可绘制对象 (android)

android - IntentRecieverLeakedException,您是否错过了对 unregisterReceiver() 的调用?在安卓中

java - 如何为扩展 ArrayAdapter<HashMap<String, String>> 的 Activity 扩展 AppCompatActivity?