Android的前置摄像头录制视频播放,但倒挂...!(Android Front Camera r

2019-09-24 04:30发布

我已成功地创建一个Android应用程序来记录视频,但问题是有前置摄像头视频的方向。 输出是不是按要求。 它就会自动旋转。

应用方向为横向。 所以,我需要在横向模式下使用凸轮前录制。

没有什么工作了。

Answer 1:

你可能想看看是怎么AOSP 摄影机活动正在实施这样的:

    if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
        rotation = (info.orientation - mOrientation + 360) % 360;
    } else {  // back-facing camera
        rotation = (info.orientation + mOrientation) % 360;
    }

还有在一些细节我的答案在这里另外一个问题 。



Answer 2:

增加这个你开始你下面setVideoSource录像

mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
if (cameraId == 1) {
    mediaRecorder.setProfile(CamcorderProfile
        .get(CamcorderProfile.QUALITY_LOW));
    mediaRecorder.setOrientationHint(270);
} else if (cameraId == 0) {
    mediaRecorder.setProfile(CamcorderProfile
        .get(CamcorderProfile.QUALITY_HIGH));
    mediaRecorder.setOrientationHint(orientation);
}

mediaRecorder.setOrientationHint(270); 是前置摄像头倒挂问题



Answer 3:

检查相机的ID,如果是1,则遵循媒体播放器“setOrientationHit方向变化()

private static final SparseIntArray REAR_ORIENTATIONS = new SparseIntArray();
static {
    REAR_ORIENTATIONS.append(Surface.ROTATION_0, 270);
    REAR_ORIENTATIONS.append(Surface.ROTATION_90, 0);
    REAR_ORIENTATIONS.append(Surface.ROTATION_180, 90);
    REAR_ORIENTATIONS.append(Surface.ROTATION_270, 180);
}

然后,在媒体播放器预览准备方法如下:

if(cameraId == FRONT_CAMERA) {
     mMediaRecorder.setOrientationHint(REAR_ORIENTATIONS.get(rotation));
}


文章来源: Android Front Camera recording video but plays upside down…!