【问题标题】:AVCaptureSession giving zoomed outputAVCaptureSession 提供缩放输出
【发布时间】:2015-01-17 22:10:18
【问题描述】:

我正在尝试使用 AVCaptureSession 制作自定义相机。 代码和一切工作正常。唯一的问题是 VideoOutput 层被缩放。这使我的图片默认缩放。

我尝试了所有方法,但无法找到解决方案。这是正在使用的代码的一小段:

AVCaptureSession *session = [[AVCaptureSession alloc] init];
session.sessionPreset = AVCaptureSessionPresetPhoto;


AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
[captureVideoPreviewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];

编辑 我改变了 AVLayerVideoGravityResizeAspectFill 到 AVLayerVideoGravityResizeAspect,这稍微纠正了输出,但视频没有出现在整个屏幕上。 请看屏幕截图

为什么它显示空白(我设置它的视图)?为什么它也没有涵盖那部分?有什么遗漏吗?

【问题讨论】:

  • 实际上AVLayerVideoGravityResizeAspectFill 导致您的视频帧在保持图层纵横比的情况下填充高度和宽度。因此,在这种情况下,您可能想尝试 AVLayerVideoGravityResizeAspect 作为视频重力。
  • @AdilSoomro 我试过了。但这让屏幕很尴尬。
  • @AdilSoomro 我在答案中做了一些更改,请您检查一下,谢谢
  • 你能粘贴完整的代码吗?您如何设置框架并将其添加到视图中?
  • @AdilSoomro 再次感谢您的回复。这是我的 .m 文件dpaste.com/3FMJJ4H 的全部代码

标签: ios avcapturesession avcapturedevice


【解决方案1】:

我发现的解决方法是你必须给AVCaptureVideoPreviewLayer一个宽度和高度相等的框架。我通过查看 Whatsapp 扫描界面得到了这个解决方案。

而且效果很好!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 2018-05-07
    • 2014-07-19
    相关资源
    最近更新 更多