【问题标题】:Android MediaMetadataRetriever wrong video height and widthAndroid MediaMetadataRetriever 错误的视频高度和宽度
【发布时间】:2018-02-03 09:50:54
【问题描述】:

我想检索视频的高度和宽度,为此我使用了 MediaMetadataRetriever 类。它在大多数情况下都可以正常工作,但在少数情况下高度和宽度可以互换。

我认为这可能是由于方向改变而发生的。

我当前的代码:

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

我怎样才能得到正确的值?谢谢

【问题讨论】:

  • 请分享媒体文件。分析文件元数据更有帮助。

标签: android android-view mediametadataretriever


【解决方案1】:

过去一天左右我一直在尝试自己解决这个问题,最终我不得不通过实验解决它。

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

【讨论】:

    猜你喜欢
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    相关资源
    最近更新 更多