1. 程式人生 > >Android 獲取視訊縮圖以及獲取視訊解析度

Android 獲取視訊縮圖以及獲取視訊解析度

今天遇到一個問題,視訊播放不能居中。

在設定VideoView的Layout時候,把整個螢幕分配給VideoView。

不過Video在播放的時候,對於成寬比和螢幕不一樣的視訊,卻沒有把視訊播放到中央。

採用相同的策略,ImageView就可以把影象放到螢幕最中央,感覺是ViewView的問題。

但是VideoView是FrameWork層的功用元件,所以就想到一個辦法來規避。

每次獲取視訊解析度和螢幕長寬,比較螢幕視訊長寬比和螢幕長寬比,以此來判斷視訊應該以長度為基準還是以寬度為基準來壓縮。

進而判斷出空白區域的面積,以此來設定View layout的位置。因此就需要獲取視訊的解析度。

MediaMetadataRetriever retr = new MediaMetadataRetriever();
retr.setDataSource(mContext , video.getUriWithDrmCheck());        
retr.setMode(MediaMetadataRetriever.MODE_CAPTURE_FRAME_ONLY);
Bitmap bm = retr.captureFrame();
int wVideo = bm.getWidth();
int hVideo = bm.getHeight();

覺得這個程式碼還比較有用,在此做個記錄。