如何在Android中以编程方式获取视频文件的持续时间和分辨率?

如何在Android中以编程方式获取视频文件的持续时间和分辨率?,android,Android,我希望获得视频文件(.mp4)的持续时间和分辨率,如何在Android中以编程方式实现这一点?我的版本是21 顺便说一句,我可以使用以下代码获得视频的文件大小 String recVideoPath = Environment.getExternalStorageDirectory() + videoRecordedFileName; File file = new File(recVideoPath); long fileVideo = file.length(); 谢谢 要获取持续时间和

我希望获得视频文件(.mp4)的持续时间和分辨率,如何在Android中以编程方式实现这一点?我的版本是21

顺便说一句,我可以使用以下代码获得视频的文件大小

String recVideoPath = Environment.getExternalStorageDirectory() + videoRecordedFileName;

File file = new File(recVideoPath);
long fileVideo = file.length();

谢谢

要获取持续时间和分辨率,可以使用MediaMetadataRetriever如下:

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(uriOfFile);
long duration = Long.parseLong(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION))
int width = Integer.valueOf(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH));
int height = Integer.valueOf(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT));
retriever.release();

uriOfFile是一个字符串,带有指向mp4的url。

谢谢!mp应该释放,否则将发生错误。所以我添加了mp.release()如何从uri获取UrioFile?