最近做項目的時候在android studio的控制檯總是能看到 MediaPlayer info/warning (3,0) 的日誌輸出。然後我就進入MediaPlayer源碼中看了看。
/** The player just pushed the very first video frame for rendering.
* @see android.media.MediaPlayer.OnInfoListener
*/
public static final int MEDIA_INFO_VIDEO_RENDERING_START = 3;
按照他們源碼的意思,0表示沒有問題。3表示mediaplay對視頻的第一幀進行了渲染。。。觸發這個的代碼應該是我對視頻進行了截圖操作吧,也就是以下的代碼
String sourcePath = mStorePath;//視頻路徑
//將視頻資源硬解碼出來
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(sourcePath);
Bitmap bitmap = retriever.getFrameAtTime(1000L);//獲取視頻的指定幀,ps:這裏的單位是納秒