Android Front Camera录制视频但播放颠倒......!

时间:2012-10-16 13:53:53

标签: android orientation android-camera landscape screen-rotation

我已设法创建一个Android应用程序来录制视频,但问题在于前置摄像头视频的方向。输出不符合要求。它会自动旋转。

应用方向是风景。因此,我需要在横向模式下使用前凸轮进行录制。

什么都没有用。

3 个答案:

答案 0 :(得分:2)

您可能想了解AOSP VideoCamera activity如何实现此目的:

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

my answer for another question here还有一些细节。

答案 1 :(得分:1)

在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);用于前置摄像头倒置问题

答案 2 :(得分:0)

检查摄像机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));
}