我正在寻找一种方法,以获得任何给定视频在Android中的分辨率。它不需要使用Android支持的其他格式,但如果可以的话,那就太棒了。如果您不确定Android支持的格式,请参阅以下页面:
http://developer.android.com/guide/appendix/media-formats.html
我认为可以使用MediaPlayer
类来做我想做的事情,但是这看起来非常愚蠢和效率低下。另外,我想要一种相对较快的方式。
我的目标是安卓3.0+,如果这有什么不同的话。蜂窝也支持.mkv文件,尽管它直到Android4.0才被官方支持。
发布于 2011-11-03 19:54:25
您可以使用MediaMetadataRetriever检索有关视频文件的分辨率信息。您可以使用extractMetadata()方法,并使用METADATA_KEY_VIDEO_HEIGHT
和METADATA_KEY_VIDEO_WIDTH
常量。所以你会这样做:
MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever();
metaRetriever.setDataSource(/* file descriptor or file path goes here */);
String height = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT);
String width = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH);
发布于 2014-12-12 05:40:16
用于API 10+的技巧:
MediaMetadataRetriever mRetriever = new MediaMetadataRetriever();
mRetriever.setDataSource("video_file_path");
Bitmap frame = mRetriever.getFrameAtTime();
int width = frame.getWidth();
int height = frame.getHeight();
我们很简单,从我们的视频随机帧,并检测它的宽度和高度。
发布于 2017-08-26 07:53:01
如果您有视频内容URI,那么也可以使用内容提供者查询
喜欢
Cursor mediaCursor = getContentResolver().query(
videoContentURI,
{MediaStore.Video.Media.RESOLUTION}, null, null, null);
if (mediaCursor != null) {
if (mediaCursor.moveToFirst()) {
//The resolution of the video file, formatted as "XxY"
String resolution=mediaCursor.getString(mediaCursor
.getColumnIndex(MediaStore.Video.Media.RESOLUTION));
}
}
You can check following post to get ContentURI from video Physical Path
https://stackoverflow.com/questions/8000978
复制相似问题