是否有可能在Android中获得视频的分辨率?
我正在寻找一种方法来获得Android中任何给定视频的分辨率。 它不需要使用Android以外的其他格式,但如果可以的话,它会很棒。 如果您不确定Android中支持的格式,请参阅此页面:
http://developer.android.com/guide/appendix/media-formats.html
我认为使用MediaPlayer
类可以做我想做的事,但这看起来非常愚蠢和低效。 另外,我想要一种相对较快的方式。
如果这有什么不同,我的目标是Android 3.0+。 Honeycomb也支持.mkv文件,但直到Android 4.0才正式支持。
您可以使用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);
欺骗API 10+:
MediaMetadataRetriever mRetriever = new MediaMetadataRetriever();
mRetriever.setDataSource("video_file_path");
Bitmap frame = mRetriever.getFrameAtTime();
int width = frame.getWidth();
int height = frame.getHeight();
我们很简单地从我们的视频中随机选取一个帧并检测其宽度和高度。
如果您有视频内容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));
}
}
您可以查看以下帖子,从视频物理路径获取ContentURI
链接地址: http://www.djcxy.com/p/84029.html上一篇: Is it possible to get the resolution of a video in Android?