AVCam不在全屏模式下

7

我在我的iOS应用程序中集成了AVCam。问题是在iPhone 4上,预览框不是全屏的,它有空白的边框...

我该如何解决这个问题?

谢谢。


你知道如何保存与预览图像大小相同的图片吗? - Matrosov Oleksandr
2个回答

22

您需要使用AVCaptureVideoPreviewLayervideoGravity属性。

请查看文档。您需要使用:AVLayerVideoGravityResizeAspectFill

编辑:

根据提问者找到的解决方案为:

- (void)setSession:(AVCaptureSession *)session {
    ((AVPlayerLayer *)[self layer]).videoGravity = AVLayerVideoGravityResizeAspectFill;
    ((AVPlayerLayer *)[self layer]).bounds = ((AVPlayerLayer *)[self layer]).bounds;
    [(AVCaptureVideoPreviewLayer *)[self layer] setSession:session];
}

我已经修复了它,但是在拍照后,照片的大小与视图相同。 - Matrosov Oleksandr
但问题是关于预览框架的。请提出您自己的问题。 - dcorbatta
@dcorbatta 刚刚创建了 http://stackoverflow.com/questions/25685179/avcam-full-screen-image-capture - Matrosov Oleksandr
1
@dcorbatta,你知道为什么即使相机预览是全屏,视频捕获仍然没有在全屏下进行吗?链接:https://dev59.com/tFsW5IYBdhLWcg3wqo0x。感谢您的帮助! - Crashalot

3

以下是在 AVCamPreviewView 中使用的解决方法。

- (void)setSession:(AVCaptureSession *)session {
    ((AVPlayerLayer *)[self layer]).videoGravity = AVLayerVideoGravityResizeAspectFill;
    ((AVPlayerLayer *)[self layer]).bounds = ((AVPlayerLayer *)[self layer]).bounds;
    [(AVCaptureVideoPreviewLayer *)[self layer] setSession:session];
}

如果你的答案是基于我的答案,为什么我的答案不正确呢? - dcorbatta
因为你没有解决方案。我会将你的标记为正确的,不用担心。 :) - diogo.appDev
谢谢,没问题。 :) 我编辑了我的答案,包括你的结果。 - dcorbatta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接