我的应用程序显示了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/

10-12 05:05