Android使用MediaPlayer播放音视频时,可以通过setOnErrorListener设置一个listener给MediaPlayer,当播放过程中出现错误时,该listener可以收到通知。

MediaPlayer.OnErrorListener是接口类,只有一个方法。

abstract boolean onError(MediaPlayer mp, int what, int extra)

可以通过what和extra知道发生了什么错误,常见的what整理如下。

  • MEDIA_ERROR_UNKNOWN(1),未指定的错误
  • MEDIA_ERROR_SERVER_DIED(100),media server died,需要释放当前media player,创建一个新的mediaplayer

常见的extra整理如下:

  • MEDIA_ERROR_IO(-1004),io错误,文件或者网络相关错误
  • MEDIA_ERROR_MALFORMED(-1007),音视频格式错误,demux或解码错误
  • MEDIA_ERROR_UNSUPPORTED(-1010),不支持的音视频格式
  • MEDIA_ERROR_TIMED_OUT(-110),操作超时,通常是超过了3—5秒
  • MEDIA_ERROR_SYSTEM( -2147483648),系统底层错误