我的应用只支持横屏。我是这样展示AVCaptureVideoPreviewLayer的:
self.previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
[self.previewLayer setBackgroundColor:[[UIColor blackColor] CGColor]];
[self.previewLayer setVideoGravity:AVLayerVideoGravityResizeAspect];
NSLog(@"previewView: %@", self.previewView);
CALayer *rootLayer = [self.previewView layer];
[rootLayer setMasksToBounds:YES];
[self.previewLayer setFrame:[rootLayer bounds]];
NSLog(@"previewlayer: %f, %f, %f, %f", self.previewLayer.frame.origin.x, self.previewLayer.frame.origin.y, self.previewLayer.frame.size.width, self.previewLayer.frame.size.height);
[rootLayer addSublayer:self.previewLayer];
[session startRunning];
self.previewView 的框架是 (0,0,568,320),是正确的。self.previewLayer 的框架记录为 (0,0,568,320),在理论上也是正确的。但是,相机显示作为纵向矩形出现在横向屏幕中央,相机预览图像的方向错误了90度。我做错了什么?我需要相机预览图层以全屏幕,横向模式出现,并且图像应该正确方向。