Nexus 5X 使用 MediaRecorder 和 camera2 录制颠倒旋转的视频

Nexus 5X records video rotated upside down using MediaRecorder and camera2

我在使用新相机 2 录制视频时遇到问题 api。我正在玩项目 https://github.com/googlesamples/android-Camera2Video 它演示了使用新相机 2 api 进行视频录制。录制效果很好,但录制的mp4视频的旋转因设备不同而不同。

Nexus 9 结果视频很好,但 Nexus 5X 不行。

听说 Nexus 5X 的摄像头是倒转的。在这种情况下,我会设置 MediaRecorder 标志以正确记录,但是...

我的问题是,如何以编程方式识别设备是否有倒置相机?

感谢您的帮助!

我找到了解决方案...

CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);
String cameraId = manager.getCameraIdList()[0];
CameraCharacteristics characteristics = manager.getCameraCharacteristics(cameraId);
int sensorOrientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION);

sensorOrientation 值:默认相机方向曾经是 90 度。 Nexus 5X 为 270 度。

从 int sensorOrientation = characteristics.get(CameraCharacteristics.SENSOR_ORIENTATION);

你可以使用 MediarRecorder 中的 setOrientationHint(sensorOrientation)。