開源播放器 ijkplayer (六) :Android 下使用 ijkplayer 異常處理思路


一、 java.lang.IllegalStateException: mpjni: setOptionLong: null mp

根據已查到的資料看,目前是ijk內部的問題,只能通過try&catch的方式進行處理。

參考:https://github.com/CarGuo/GSYVideoPlayer/issues/654

參考:https://github.com/bilibili/ijkplayer/issues/2136

二、暫停的時候,退到后台再回到前台,畫面黑屏

1. 可以在暫停的時候,通過TextureView.getBitmap(point.x, point.y);獲取到暫停的畫面,用ImageView顯示它,在onSurfaceTextureUpdated的時候隱藏ImageView,來實現畫面的銜接。

2. 暫停時繪制靜態畫面多TextureView的Surface上,詳細參考GSYVideoPlayer

三、ijk在切換URL時報400錯誤(http與https域名共用)

ijkplayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "dns_cache_clear", 1);

四、ijkplayer onComplete異常回調

現象描述:

在Android手機上,播放視頻,在播放的時候把網絡關閉,當player把buffer播放完成后,會回調onCompletion和onError方法,但是視頻實際上還沒播放完畢。

ijkplayer 項目此問題 Issues匯總:

https://github.com/bilibili/ijkplayer/issues/193

https://github.com/bilibili/ijkplayer/issues/525

https://github.com/bilibili/ijkplayer/issues/1289

https://github.com/bilibili/ijkplayer/issues/1580

優化方案:

增加播放失敗的重試機制,將-10000這個錯誤進行處理,給用戶重試的機制。

同時,如果收到播放完成的回調的時候,增加判斷邏輯,如果當前播放的時長距真正結束超過5秒,則不做播放結束的處理。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM