相关疑难解决方法(0)

AVCaptureVideoPreviewLayer没有填满整个iPhone 4S屏幕

AVCaptureVideoPreviewLayer *avLayer = 
                [AVCaptureVideoPreviewLayer layerWithSession:session];
avLayer.frame = self.view.frame;
[self.view.layer addSublayer:avLayer];
Run Code Online (Sandbox Code Playgroud)

我使用AVCaptureVideoPreviewLayer在视图上显示视频.但视频的视图并没有填满整个iPhone4的屏幕.(右侧和左侧有两个灰色条)

我希望视频能够全屏显示.我怎么处理它?非常感谢你!

在此输入图像描述

iphone avfoundation ios4

63
推荐指数
4
解决办法
3万
查看次数

AVFoundation相机预览图层无法正常工作

所以,我正在尝试使用AVFoundation实现相机.我想我做的一切都是正确的.这就是我在做的事情

  1. 创建会话
  2. 获取视频类型的设备
  3. 循环通过设备让相机在后面
  4. 使用#3中提到的设备获取设备输入并将其添加到会话中
  5. 创建一个类型的输出 AVCaptureStillImageOutput
  6. 设置输出设置并将其添加到会话中
  7. 从我的观点2得到一个CALayer(下面将解释我的意思2)
  8. 创建一个实例 AVCaptureVideoPreviewLayer
  9. 将其添加到#7中提到的图层
  10. 开始运行会话

所以我有2个观点一个在另一个上面.顶部的是View 1,下面的是View 2. View 1应该提供自定义的摄像头控件.

这是代码:

self.session = [[AVCaptureSession alloc]init];
[self.session setSessionPreset:AVCaptureSessionPresetHigh];
NSArray *devices = [[NSArray alloc]init];
devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
for (AVCaptureDevice *device in devices){
    if([device position] == AVCaptureDevicePositionBack){
        self.device = device;
        break;
    }
}
NSError *error;
self.input = [[AVCaptureDeviceInput alloc]initWithDevice:self.device error:&error];
if([self.session canAddInput:self.input]){
    [self.session addInput:self.input];    
}


self.stillImageOutput = [[AVCaptureStillImageOutput alloc]init];
NSDictionary *outputSettings = @{AVVideoCodecKey : AVVideoCodecJPEG};
[self.stillImageOutput setOutputSettings:outputSettings];

[self.session addOutput:self.stillImageOutput];

CALayer *cameraLayer = self.cameraView.layer;
self.cameraView.backgroundColor …
Run Code Online (Sandbox Code Playgroud)

camera avfoundation ios

5
推荐指数
1
解决办法
3630
查看次数

标签 统计

avfoundation ×2

camera ×1

ios ×1

ios4 ×1

iphone ×1