我的应用程序显示了sdcard中的媒体(音频和视频)文件列表以及文件大小,MIME类型。现在,我想在每个列表项中添加媒体文件的总持续时间。
我尝试使用以下代码获取持续时间
String[] proj = { MediaStore.Video.VideoColumns.DURATION };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index
= cursor.getColumnIndexOrThrow(MediaStore.Video.VideoColumns.DURATION);
但是
MediaStore
仅在之前播放媒体时返回正确的持续时间,否则返回0。我不能使用videoview.getDuration
,因为我不想播放视频。我希望您的帮助知道我是否在上面的代码中犯了任何错误,或者是否有其他方法可以获取持续时间而不先播放。
最佳答案
您应该能够使用MediaMetadataRetriever从文件中读取持续时间。但是使用此类将要求您的项目至少为API级别10(Android 2.3.3)。
关于android - 如何知道任何媒体文件的持续时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9236404/