如何从MediaStore获取视频的持续时间?

时间:2017-09-05 13:06:19

标签: android

我使用this回答来获取持续时间,但它对我不起作用。任何人都可以告诉我这是什么问题?

感谢任何帮助。

myfun(400, 5)
# 1 101 200 300 400

myfun(400, 7)
# 1  68 134 200 267 334 400

2 个答案:

答案 0 :(得分:1)

MediaStore是一个媒体提供商,其中包含内部和外部存储设备上所有可用媒体的元数据。我不确定,但您使用的路径可能对于MediaStore不可见。如果您使用的是MediaPlayer,请执行此...

 MediaPlayer mp = MediaPlayer.create(this, Uri.parse(uriOfYourFile));
 int duration = mp.getDuration();

答案 1 :(得分:0)

如果您已经获得了视频的Uri或文件路径,那么使用MediaMetadataRetriever类可能会更容易。它看起来像这样:

MediaMetadataRetriever r = new MediaMetadataRetriever();
r.setDataSource(filePath);
String durString = r.extractMetadata( MediaMetadataRetriever.METADATA_KEY_DURATION );
int duration = Integer.parseInt(durString);