問題原由:
在進行ijkplayer播放器的測試時,發現ijkplayer播放器在切換網絡時出現直播畫面中止的問題。android
問題分析:
抓取日誌發現:tv.danmaku.ijk.media.player.IjkMediaPlayer: Error (-10000,0)網絡
問題解決:
重寫OnErrorListener的onError方法,而後判斷what = -10000的時候,觸發重置播放器的操做ide
參考內容
ijkplayer_android_def.h :測試
// Generic error codes for the media player framework. Errors are fatal, the // playback must abort. // // Errors are communicated back to the client using the // MediaPlayerListener::notify method defined below. // In this situation, 'notify' is invoked with the following: // 'msg' is set to MEDIA_ERROR. // 'ext1' should be a value from the enum media_error_type. // 'ext2' contains an implementation dependant error code to provide // more details. Should default to 0 when not used. // // The codes are distributed as follow: // 0xx: Reserved // 1xx: Android Player errors. Something went wrong inside the MediaPlayer. // 2xx: Media errors (e.g Codec not supported). There is a problem with the // media itself. // 3xx: Runtime errors. Some extraordinary condition arose making the playback // impossible. // enum media_error_type { // 0xx MEDIA_ERROR_UNKNOWN = 1, // 1xx MEDIA_ERROR_SERVER_DIED = 100, // 2xx MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK = 200, // 3xx // -xx MEDIA_ERROR_IO = -1004, MEDIA_ERROR_MALFORMED = -1007, MEDIA_ERROR_UNSUPPORTED = -1010, MEDIA_ERROR_TIMED_OUT = -110, MEDIA_ERROR_IJK_PLAYER = -10000, };