我想检索视频的高度和宽度,我正在使用MediaMetadataRetriever类。它在大多数情况下工作正常,但在少数情况下高度和宽度是互换的。
我想这可能是因为方向的改变。
我的当前代码:
MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever();
metaRetriever.setDataSource(videoPath);
videoHeight = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT);
videoWidth = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH);
如何获得正确的值?谢谢你
最佳答案
我在最后一天左右一直试图自己解决这个问题,我最终不得不通过实验来解决。
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,则宽度和高度将被调换。