2

尽管我已经多次搜索 SO 并阅读文档AVCaptureConnectionAVCaptureSession但 我仍然对所有这些 AV 内容感到困惑AVCaptureVideoPreviewLayer。说到这个,对我来说就是一大堆抽象的词,没有多大意义。我要求在这里为我阐明这个主题。AVCaptureDeviceAVCaptureInput/Output

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

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

谢谢

4

1 回答 1

3

我希望我有更多的时间来写一个更彻底的答复。以下是一些简化的基础知识:

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

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

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

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

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

这是一张可能对您有更多帮助的图片(来自上述文档): 在此处输入图像描述

更详细的视图:在此处输入图像描述

于 2013-03-05T23:03:59.140 回答