最近項目中開發videoview視頻上傳,在上傳之前要判斷上傳時長,時長過短或過長的都不能上傳。剛開始看videoview的api,有一個getDuration()的方法是獲取時長,但是每次拿到的值都是-1,後來查了相關資料,大概是說必須要在視頻準備完成開始播放的時候才能拿到時長。可是在我項目裏面上傳視頻的時候不需要播放。後來用如下方法解決,代碼如下:(音頻文件也可以用此種方式獲取時長)
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(path);
String duration = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); // 播放時長單位爲毫秒