Среда: Xcode 4, ios 5, ipod touch 4-го поколения с дисплеем Retina
Я пытаюсь написать простое приложение, которое показывает предварительный просмотр видео и делает снимок. Для показа предварительного просмотра я использую следующий код:
// Create the session
session = [[AVCaptureSession alloc] init];
// Set preset to the highest available
session.sessionPreset = AVCaptureSessionPresetPhoto;
// Give the frame for preview
CALayer *viewLayer = self.vPreview.layer;
NSLog(@"viewLayer = %@", viewLayer);
AVCaptureVideoPreviewLayer *captureVideoPreviewLayer =
[[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
captureVideoPreviewLayer.frame = self.vPreview.bounds;
NSLog(@"Bounds: x:%d, y:%d,height:%d,width:%d",
self.vPreview.bounds.origin.x,self.vPreview.bounds.origin.y,
self.vPreview.bounds.size.height, self.vPreview.bounds.size.width);
[self.vPreview.layer addSublayer:captureVideoPreviewLayer];
// Get AV Device
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
NSError *error = nil;
// Add Input from the above device
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error];
if ( !input ) NSLog(@"ERROR: trying to open camera: %@", error);
[session addInput:input];
У меня есть vPreview, подключенный к раскадровке UIView на IB, и он занимает весь экран. Однако рамка всегда печатается как 0,0,0,0 (x, y, h, w). Может кто-нибудь, пожалуйста, скажите мне, что идет не так?
Есть еще несколько строк кода, которые устанавливают вывод и запускают сеанс. Однако к этому времени кадр уже неправильный. Интересно, что я вижу предварительный просмотр видео, однако он показывает в портретной ориентации, где мое приложение полностью в альбомной ориентации.