Android Camera recording video but plays upside down

后端 未结 10 1570
南旧
南旧 2020-12-10 04:42

I record a video using the below code and it records perfectly, but when it plays the video, it plays it upside down.

I tried settings mrec.setOrientationHint(

10条回答
  •  误落风尘
    2020-12-10 04:49

    I know your issue,

    Video use Media Recorder from Camera, so you need rotate Media Recorder. use below codes should be fixed your issue.

    /**
     * 
     * @param mMediaRecorder
     * @return
     */
    public static MediaRecorder rotateBackVideo(MediaRecorder mMediaRecorder) {
        /**
         * Define Orientation of video in here,
         * if in portrait mode, use value = 90,
         * if in landscape mode, use value = 0
         */
        switch (CustomCamera.current_orientation) {
            case 0:
                mMediaRecorder.setOrientationHint(90);
                break;
            case 90:
                mMediaRecorder.setOrientationHint(180);
                break;
            case 180:
                mMediaRecorder.setOrientationHint(270);
                break;
            case 270:
                mMediaRecorder.setOrientationHint(0);
                break;
        }
    
        return mMediaRecorder;
    }
    

    Should add before prepare() method :

    // Step 5: Set the preview output
        /**
         * Define Orientation of image in here,
         * if in portrait mode, use value = 90,
         * if in landscape mode, use value = 0
         */
        CustomCamera.mMediaRecorder = Utils.rotateBackVideo(CustomCamera.mMediaRecorder);
        CustomCamera.mMediaRecorder.setPreviewDisplay(mCameraPreview.getHolder().getSurface());
    

    Thank you

提交回复
热议问题