ios - 相机设置逻辑 iOS

标签 ios camera avfoundation avcapturesession avcapturedevice

尽管我已经在 AVCaptureConnectionAVCaptureSessionAVCaptureVideoPreviewLayerAVCaptureDevice 上多次搜索并阅读文档,AVCaptureInput/Output ...我仍然对所有这些 AV 东西感到困惑。说到这里,对我来说这是一大堆抽象的词,没有多大意义。我要求在这里为我阐明这个主题。

那么,有人可以用简单的英语连贯地解释媒体设备的正确设置和使用的逻辑吗?什么是 AVCaptureVideoPreviewLayer?什么是 AVCaptureConnection?输入/输出?

我想了解制作这个东西的人在制作它时的基本想法。

谢谢

最佳答案

我希望有更多时间来写更详尽的回复。以下是一些简化的基础知识:

为了处理来自硬件、发送到屏幕或文件的音频和视频,您需要使用 AVCaptureConnections 设置一个 AVCaptureSession 来帮助协调源和目标。您可以使用 session 实例来启动和停止该过程,并设置一些输出属性,例如比特率和质量。您可以使用 AVCaptureConnection 实例来控制 AVCaptureInputPort 和 AVCaptureOutputPort(或 AVCaptureVideoPreviewLayer)之间的连接,例如监视声音的输入级别或设置视频的方向。

AVCaptureInputPort 是与 AVCaptureDevice 不同的输入 - AVCaptureDevice 是您的视频或音频的来源,例如相机或麦克风。您通常会浏览所有可用设备,并选择那些具有您正在寻找的属性的设备,例如它们是否是音频,或者是否是前置摄像头。

AVCaptureOutput 是发送 AV 的位置 - 它可能是一个文件或一个允许您实时处理数据的例程等。

AVCaptureVideoPreviewLayer 是一个 OpenGL 层,经过优化,可以非常快速地渲染所选视频输入设备(前置或后置摄像头)的输出。您通常使用它来向用户显示您正在使用什么输入 - 有点像相机取景器。

如果你要使用这个东西,那么你必须阅读Apple的AV Foundation Programming Guide

这是一张可能对您有更多帮助的图片(来自上述文档):enter image description here

更详细的 View :enter image description here

关于ios - 相机设置逻辑 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15235558/

相关文章:

ios - 白标 iOS 应用

ios - 如何使用拖放重新排序 UITableView?

ios - 如何使用 Swift 选择图像的一部分、裁剪并保存?

ios - 如何以最少的重新压缩将新创建的 AVMutableComposition 写入磁盘?

ios - 在另一个嵌套表中嵌套 UITableView

objective-c - AppDelegate.m 文件中的函数未从 MainViewController.m 文件调用

iOS 相机 : manual exposure duration but auto ISO?

c++ - 使用 OpenCV 打开 USB 摄像头

ios - 修改 CMSampleBuffer 内容的最有效方法

ios - 为什么 AVAsset 状态变化的观察者不起作用?