9

AVCaptureVideoPreviewLayerライブビデオを渡し、openGLリアルタイムでシェーダーを適用するために使用しています。フロントカメラを使用すると、ビデオがミラーリングされます。シェーダーを適用する前にミラーリングを解除したいです。

誰かがそこを助けることができますか?

追加: フロントカメラに切り替えるコード:

-(void)showFrontCamera{
    NSLog(@"inside showFrontCamera");
    [captureSession removeInput:videoInput];
    // Grab the front-facing camera
    AVCaptureDevice *backFacingCamera = nil;
    NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
    for (AVCaptureDevice *device in devices) {
        if ([device position] == AVCaptureDevicePositionFront) {
            backFacingCamera = device;
        }
    }
    // Add the video input
    NSError *error = nil;
    videoInput = [[[AVCaptureDeviceInput alloc] initWithDevice:backFacingCamera error:&error] autorelease];

    if ([captureSession canAddInput:videoInput]) {
        [captureSession addInput:videoInput];
    }

}
4

1 に答える 1

7

既にプレビュー レイヤーがある場合は、接続を更新するだけです。

[[previewLayer connection] setAutomaticallyAdjustsVideoMirroring:NO];
[[previewLayer connection] setVideoMirrored:NO];
于 2014-06-26T07:51:51.527 に答える