android VideoView開發總結
阿新 • • 發佈:2019-02-08
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">1.VideoView播放視訊檔案報錯時,可呼叫:</span>
public void onCreate(){ ... mVideoView.setOnErrorListener(videoErrorListener); ... } private OnErrorListener videoErrorListener = new OnErrorListener(){ void onError(){ return true;//返回true,不彈出報錯對話方塊 } }
注意:
在MediaPlayer與SurcaceView播放視訊的時候,如果播放的視訊碼流有誤,使Media Server Died, 這時如果重新釋放MediaPlayer並建立,有時會出現 [SurfaceView] connect: already connected (cur=3, req=3) setVideoSurfaceTexture failed: -22這樣的錯誤(這是在htc上出現的)或者出現 E/MemoryHeapBase(13312): mmap(fd=21, size=0) failed (Invalid argument)(這是在ipad上出現的)
分析原因應該是surfaceview佔用,與新建立的mediaplayer無法正常關聯,需要重新建立surfaceview
可行方法
surfaceView.setVisibility(View.GONE);
surfaceView.setVisibility(View.VISIBLE);