我想始终水平捕获视频。

如果用户旋转手机,我想水平捕获视频。

为此,我有一个reference,但我想通过定制使其成为我自己的。

我怎样才能顺利实现呢?

最佳答案

尝试这个

public static void setCameraDisplayOrientation(int phoneRotation, int cameraId, Camera camera) {
   Camera.CameraInfo info = new Camera.CameraInfo();
    info = Camera.getCameraInfo(cameraId, info);
    int degrees = 0;
    switch (phoneRotation) {
        case Surface.ROTATION_0:
            degrees = 0;
            break;
        case Surface.ROTATION_90:
            degrees = 90;
            break;
        case Surface.ROTATION_180:
            degrees = 180;
            break;
        case Surface.ROTATION_270:
            degrees = 270;
            break;
    }

    int result;
    if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
        result = (info.orientation + degrees) % 360;
        result = (360 - result) % 360;
    } else {
        result = (info.orientation - degrees + 360) % 360;
    }
    camera.setDisplayOrientation(result);
}


当phoneRotation为
int phoneRotation = activity.getWindowManager().getDefaultDisplay().getRotation();

顺便说一下,这个答案最初是从stackoverflow中的某个答案重构而来的。

关于android - 如何在 native Android中制作始终水平捕获的自定义相机?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55823177/

10-10 02:23