我想检索视频的高度和宽度,我正在使用MediaMetadataRetriever类。对于大多数情况来说它是正确的,但是对于少数情况,高度和宽度互换。
我认为这可能会因为方向改变而发生。
我目前的代码:
MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever();
metaRetriever.setDataSource(videoPath);
videoHeight = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT);
videoWidth = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH);
我如何获得正确的价值观?谢谢
答案 0 :(得分:4)
我一直试图在最后一天左右解决这个问题,我最终不得不通过实验解决这个问题。
File file = new File(path);
if (file.exists()) {
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(file.getAbsolutePath());
String metaRotation = retriever.extractMetadata(METADATA_KEY_VIDEO_ROTATION);
int rotation = metaRotation == null ? 0 : Integer.parseInt(metaRotation);
Log.i("Test", "Rotation = " + rotation);
}
如果旋转为90或270,则将调换宽度和高度。