虽然我在AVCaptureConnection
,AVCaptureSession
,AVCaptureVideoPreviewLayer
,AVCaptureDevice
,AVCaptureInput/Output
上多次搜索并阅读文档...我仍然感到困惑关于所有这些AV的东西。谈到这一点,对我来说,这是一大堆抽象词,没有多大意义。我要求在这里为我提供一些有关这个问题的信息。
那么,任何人都可以在普通英语中正确解释正确设置和使用媒体设备的逻辑吗?什么是AVCaptureVideoPreviewLayer?什么是AVCaptureConnection?输入/输出
我想要了解制作这些东西的人们的基本想法。
由于
答案 0 :(得分:3)
我希望我有更多时间撰写更全面的回复。以下是一些简化的基础知识:
为了处理来自硬件的音频和视频,目的地是屏幕或文件,您需要使用AVCaptureConnections设置AVCaptureSession,以帮助协调源和目的地。您可以使用会话实例来启动和停止该过程,同时设置一些输出属性,如比特率和质量。您可以使用AVCaptureConnection实例来控制AVCaptureInputPort和AVCaptureOutputPort(或AVCaptureVideoPreviewLayer)之间的连接,例如监视声音的输入电平或设置视频的方向。
AVCaptureInputPort是来自AVCaptureDevice的不同输入 - 这是您的视频或音频来自的地方,例如相机或麦克风。您通常会浏览所有可用的设备并选择那些具有您正在寻找的属性的设备,例如它们是音频还是前置摄像头。
AVCaptureOutput是发送AV的地方 - 它可能是一个文件或例程,允许您实时处理数据等。
AVCaptureVideoPreviewLayer是一个OpenGL图层,经过优化,可以非常快速地渲染所选视频输入设备(前置或后置摄像头)的输出。您通常使用它来向用户显示您正在使用的输入 - 有点像相机取景器。
如果你打算使用这些东西,那么你必须阅读Apple的AV Foundation Programming Guide
这是一张可以为您提供更多帮助的图片(来自上述文档):
更详细的视图: