How to determine video width and height on Android

mao picture mao · Jan 31, 2012 · Viewed 29.4k times · Source

I have a video file and I want to get width and height of video. I don't want to play it, just to get size. I've tried to use MediaPlayer:

MediaPlayer mp = new MediaPlayer();
mp.setDataSource(uriString);
mp.prepare();
int width = mp.getVideoWidth();
int height = mp.getVideoHeight();

but it returns 0 for width and height, because VideoSizeChangedEvent didn't fire yet. How can I get width and height of video?

UPD: I need API version 7

Answer

Jarett Millard picture Jarett Millard · Jul 28, 2015

This works in API level 10 and up:

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource("/path/to/video.mp4");
int width = Integer.valueOf(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH));
int height = Integer.valueOf(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT));
retriever.release();