Android捕获MediaPlayer错误

Android捕获MediaPlayer错误,android,exception,try-catch,Android,Exception,Try Catch,我想抓住以下关于mediaplayer的android例外 11-28 11:44:17.801 21290-21290/com.xxx.xxx E/MediaPlayer﹕ internal/external state mismatch corrected 或 但我的活动必须实施 MediaPlayer.OnErrorListener MediaPlayer.OnInfoListener 并设置mediaplayer异常 try { mMediaPlayer.setDat

我想抓住以下关于mediaplayer的android例外

 11-28 11:44:17.801  21290-21290/com.xxx.xxx E/MediaPlayer﹕ internal/external state mismatch corrected

但我的活动必须实施

MediaPlayer.OnErrorListener
MediaPlayer.OnInfoListener

并设置mediaplayer异常

  try {
   mMediaPlayer.setDataSource(path);
                mMediaPlayer.create(this, R.raw.tutor);
                mMediaPlayer.setDisplay(holder);
                mMediaPlayer.prepareAsync();
   } catch (Exception e) {
        e.printStackTrace();
        Log.e(TAG, "error:" + e.getMessage());

    }
但他们没有抓住错误

有人知道如何捕捉这些错误代码或消息吗?用什么方法


非常感谢

如果它没有抛出异常,那么您就无法捕获它。使用
onError
方法会发生什么;是否正确调用了它?如果显示这些错误,则在OneError方法中不会显示这些错误。但媒体已停止。媒体播放器开始播放,但播放一段时间后,它将显示这些错误,因此我希望捕获这些错误并向user.mp.setdatasore()、mp.preparasync()显示一些警报,然后在onprepare()中放入mp.start(),并请实现onpreparedlistener接口。我希望您已经这样做了。我的代码最初是将mediaplayer.start()放在onprepare()方法中的。我已经实现了MediaPlayer.OnPreparedListener。
 @Override
 public boolean onError(MediaPlayer mp, int what, int extra) {
     Log.i(TAG, "On Error what:" + what + "/"+extra);
          return false;
  }

  @Override
  public boolean onInfo(MediaPlayer mp, int what, int extra) {
     Log.i(TAG, "On Error what:" + what +"/"+extra);
  }
  try {
   mMediaPlayer.setDataSource(path);
                mMediaPlayer.create(this, R.raw.tutor);
                mMediaPlayer.setDisplay(holder);
                mMediaPlayer.prepareAsync();
   } catch (Exception e) {
        e.printStackTrace();
        Log.e(TAG, "error:" + e.getMessage());

    }