Android MediaMetadataRetriever错误的视频高度和宽度

时间:2017-08-25 10:55:00

标签: android android-view mediametadataretriever

我想检索视频的高度和宽度,我正在使用MediaMetadataRetriever类。对于大多数情况来说它是正确的,但是对于少数情况,高度和宽度互换。

我认为这可能会因为方向改变而发生。

我目前的代码:

MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever();
        metaRetriever.setDataSource(videoPath);
        videoHeight = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT);
        videoWidth = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH);

我如何获得正确的价值观?谢谢

1 个答案:

答案 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,则将调换宽度和高度。