是否有可能在Android中获得视频的分辨率?

Mic*_*Bak 17 video android android-3.0-honeycomb android-4.0-ice-cream-sandwich

我正在寻找一种方法来获得Android中任何给定视频的分辨率.它不必与Android中支持的其他格式一起使用,但如果确实如此,它会很棒.如果您不确定Android中支持的格式,请参阅此页面:

http://developer.android.com/guide/appendix/media-formats.html

我认为使用MediaPlayer该类可以做我想做的事情,但这看起来非常愚蠢和低效.而且,我想要一种相对较快的方式.

我的目标是Android 3.0+,如果这有任何区别的话.Honeycomb还支持.mkv文件,虽然直到Android 4.0才正式支持.

Kur*_*aum 48

您可以使用MediaMetadataRetriever检索有关视频文件的分辨率信息.您将使用extractMetadata()方法并使用METADATA_KEY_VIDEO_HEIGHTMETADATA_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);
Run Code Online (Sandbox Code Playgroud)

  • 前蜂窝有什么简单的方法吗? (4认同)

eug*_*eek 5

API 10+的技巧:

MediaMetadataRetriever mRetriever = new MediaMetadataRetriever();
mRetriever.setDataSource("video_file_path");
Bitmap frame = mRetriever.getFrameAtTime();

int width = frame.getWidth();
int height = frame.getHeight();
Run Code Online (Sandbox Code Playgroud)

我们很简单地从视频中获取随机帧并检测其宽度和高度。