我正在使用此标准示例来显示从相机到iPhone屏幕的视频。我可以看到视频,但它是缩放的。当我使用标准iPhone相机应用程序时,我可以在图片上看到更多。
我很确定答案很简单,但似乎我的英语不够好,无法做出正确的搜索短语。
-(void)viewDidLoad
{
[super viewDidLoad];
cameraPreview = [[UIView alloc] initWithFrame:CGRectMake(0,0,720,1280)] ;
[self.view addSubview:cameraPreview] ;
AVCaptureSession *session = [[AVCaptureSession alloc] init];
session.sessionPreset = AVCaptureSessionPresetHigh;
CALayer *viewLayer = cameraPreview.layer;
NSLog(@"viewLayer = %@", viewLayer);
AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
captureVideoPreviewLayer.frame = cameraPreview.bounds;
[cameraPreview.layer addSublayer:captureVideoPreviewLayer];
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
NSError *error = nil;
AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error];
if (!input) {
// Handle the error appropriately.
NSLog(@"ERROR: trying to open camera: %@", error);
}
[session addInput:input];
[session startRunning];
}
答案 0 :(得分:0)
有很多可能的原因,第一个是关于你得到的帧的分辨率,AVCaptureSessionPresetHigh
表示不同设备上的不同res。获得框架后,它们应显示在预览图层中
AVCaptureVideoPreviewLayer
的方面模式类似于名为UIImageView
的{{1}}
组合到不同videoGravity的帧的大小可以改变预览层显示它们的方式。