Невозможно получить предварительный просмотр видео с помощью AVCaptureSession - PullRequest
0 голосов
/ 26 октября 2011

Я настроил AVCaptureSession так:

AVCaptureSession *newSession = [[AVCaptureSession alloc] init];
AVCaptureDevice *camera = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

NSError *error = nil;

AVCaptureDeviceInput *newInput = [[AVCaptureDeviceInput alloc] initWithDevice:camera error:&error];


if(error) {
    NSLog([error localizedDescription]);

}

AVCaptureMovieFileOutput *newOutput = [[AVCaptureMovieFileOutput alloc] init];


if([newSession canAddInput:newInput])
    [newSession addInput:newInput];
if ([newSession canAddOutput:newOutput])
    [newSession addOutput:newOutput];

[self setSession:newSession];
[self setInput:newInput];
[self setOutput:newOutput];

А затем я добавил слой предварительного просмотра в свой вид:

AVCaptureVideoPreviewLayer *layer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:[recorder session]];

[layer setBounds:[recordingView bounds]];
[layer setVideoGravity:AVLayerVideoGravityResizeAspectFill];

[[recordingView layer] insertSublayer:layer above:[recordingView layer]];

Но я не получу предпросмотр.

Я нахожусь на IOS 5 с iPod Touch 4-го поколения.

Спасибо.

1 Ответ

2 голосов
/ 26 октября 2011

Прежде всего, как определяется ваш recordingView? Во-вторых,

[[recordingView layer] insertSublayer:layer above:[recordingView layer]];

не имеет смысла. (вы пытаетесь добавить слой над собственным слоем внутри собственного слоя -> Дух?) Попробуйте [recordingView.layer addSublayer:layer]; вместо.

Ваш опубликованный проект в комментариях использует обнуление слабых указателей вместо этого пометьте свои свойства, и все работает.

...