VideoView有一个getDuration()的方法是获取时长,但是每次拿到的值都是-1,因为视频准备完成开始播放的时候才能拿到时长。以下代码可以实现在视频播放前,根据视频/音频路径就获得视频/音频时长:
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(path);
String duration = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION); // 播放时长单位为毫秒