如何知道任何媒体文件的持续时间

时间:2012-02-10 23:42:31

标签: android

我的应用程序显示了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,因为我不想播放视频。 我希望你的帮助知道我是否在上面的代码中犯了任何错误,或者是否有任何其他方式来获取持续时间而不先播放

1 个答案:

答案 0 :(得分:2)

您应该能够使用MediaMetadataRetriever从文件中读取持续时间。但是使用这个类将要求你的项目至少是API级别10(Android 2.3.3)。