android使用 MediaMetadataRetriever 獲取視頻文件的 總時長 和視頻的分辨率。
根據該方式獲取視頻信息可以看出不僅僅可以獲取時長和分辨率,還能獲取到其他的一些視頻信息,不錯還是很強大的,不用自己去解析mp4文件了。此demo只是獲取的mp4文件,其他的多媒體文件也可以獲取到相應信息,比如mp3;
private void getPlayTime(String mUri) { android.media.MediaMetadataRetriever mmr = new android.media.MediaMetadataRetriever(); try { if (mUri != null) { HashMap<String, String> headers = null; if (headers == null) { headers = new HashMap<String, String>(); headers.put("User-Agent", "Mozilla/5.0 (Linux; U; Android 4.4.2; zh-CN; MW-KW-001 Build/JRO03C) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/1.0.0.001 U4/0.8.0 Mobile Safari/533.1"); } mmr.setDataSource(mUri, headers); } else { //mmr.setDataSource(mFD, mOffset, mLength); } String duration = mmr.extractMetadata(android.media.MediaMetadataRetriever.METADATA_KEY_DURATION);//時長(毫秒) String width = mmr.extractMetadata(android.media.MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH);//寬 String height = mmr.extractMetadata(android.media.MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT);//高 Toast.makeText(MainActivity.this, "playtime:"+ duration+"w="+width+"h="+height, Toast.LENGTH_SHORT).show(); } catch (Exception ex) { Log.e("TAG", "MediaMetadataRetriever exception " + ex); } finally { mmr.release(); } }
轉載地址:http://blog.csdn.net/lzy0168/article/details/43566731(作者好像不讓轉。。。)