我的应用程序显示了SD卡中的媒体(音频和视频)文件列表以及文件大小,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
,因为我不想播放视频。
我希望你的帮助知道我是否在上面的代码中犯了任何错误,或者是否有任何其他方式来获取持续时间而不先播放。
答案 0 :(得分:2)
您应该能够使用MediaMetadataRetriever从文件中读取持续时间。但是使用这个类将要求你的项目至少是API级别10(Android 2.3.3)。