解决Android视频文件分辨率(null*null)获取不到问题

可以读取视频文件的第一帧来获取分辨率。我之前做的一个video播放器就是这么做的,可以根据分辨率动态改变service view大小。
Cursor cursor = getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, "(_data='"+_data+"')", null, MediaStore.Video.Media.DEFAULT_SORT_ORDER);
  
cursor.moveToFirst();    
path = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));
MediaMetadataRetriever retr = new MediaMetadataRetriever();  
retr.setDataSource(path);        
Bitmap bm = retr.getFrameAtTime(); 
wVideo = bm.getWidth();  
hVideo = bm.getHeight(); 
其中path是文件路径,wVideo,hVideo为宽和高。

你可能感兴趣的:(Java/Android)