我希望我有更多的时间来写一个更彻底的答复。以下是一些简化的基础知识:
为了处理来自硬件、发往屏幕或文件的音频和视频,您需要使用 AVCaptureConnections 设置帮助协调源和目标的 AVCaptureSession。您可以使用会话实例来启动和停止进程,同时设置一些输出属性,例如比特率和质量。您使用 AVCaptureConnection 实例来控制 AVCaptureInputPort 和 AVCaptureOutputPort(或 AVCaptureVideoPreviewLayer)之间的连接,例如监视声音的输入电平或设置视频的方向。
AVCaptureInputPort 是来自 AVCaptureDevice 的不同输入 - 这是您的视频或音频的来源,例如相机或麦克风。您通常会浏览所有可用设备并选择具有您正在寻找的属性的设备,例如它们是音频还是前置摄像头。
AVCaptureOutput 是发送 AV 的地方 - 它可能是一个文件或一个例程,允许您实时处理数据等。
AVCaptureVideoPreviewLayer 是一个 OpenGL 层,经过优化,可以非常快速地渲染所选视频输入设备(前置或后置摄像头)的输出。您通常使用它来向您的用户显示您正在使用的输入 - 有点像相机取景器。
如果你打算使用这些东西,那么你必须阅读 Apple 的AV Foundation Programming Guide
这是一张可能对您有更多帮助的图片(来自上述文档):
更详细的视图: