Непрозрачность камеры iPhone 4 - PullRequest
2 голосов
/ 24 мая 2011

Мне было интересно, можно ли установить непрозрачность входа камеры?Например, если у меня есть слои под камерой, я хочу, чтобы меня показывали через слой камеры ..

Я работаю с камерой так:

- (void)addVideoPreviewLayer {
    [self setPreviewLayer:[[[AVCaptureVideoPreviewLayer alloc] initWithSession:[self captureSession]] autorelease]];
    [[self previewLayer] setVideoGravity:AVLayerVideoGravityResizeAspectFill];

}

- (void)addVideoInput {
    AVCaptureDevice *videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];   
    if (videoDevice) {
        NSError *error;
        AVCaptureDeviceInput *videoIn = [AVCaptureDeviceInput deviceInputWithDevice:videoDevice error:&error];
        if (!error) {
            if ([[self captureSession] canAddInput:videoIn])
                [[self captureSession] addInput:videoIn];
            else
                NSLog(@"Couldn't add video input");     
        }
        else
            NSLog(@"Couldn't create video input");
    }
    else
        NSLog(@"Couldn't create video capture device");
}

И запускаю ее с помощью:1006 *

[self setCaptureManager:[[CaptureSessionManager alloc] init]];
[[self captureManager] addVideoInput];
[[self captureManager] addVideoPreviewLayer];
CGRect layerRect = [[[self view] layer] bounds];
[[[self captureManager] previewLayer] setBounds:layerRect];
[[[self captureManager] previewLayer] setPosition:CGPointMake(CGRectGetMidX(layerRect),
    CGRectGetMidY(layerRect))];
[[[self view] layer] addSublayer:[[self captureManager] previewLayer]];

Это возможно?И если да, то как это можно сделать?

1 Ответ

1 голос
/ 02 июня 2011

PreviewLayer не скомпонован, как обычные CALayers, поэтому неудивительно, что изменение его непрозрачности не работает.

Что вы можете попробовать сделать, так это использовать этот код (http://developer.apple.com/library/ios/#qa/qa1702/_index.html) для захвата вводас камеры в режиме реального времени преобразуйте его в UIImage и вставьте это изображение в UIImageView. Я обнаружил, что с настройкой сеанса AVCaptureSessionPresetMedium вы сможете обновить UIImageView со скоростью 20-30 кадров в секунду, что можетбыть достаточным для того, что вы пытаетесь достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...