ipadOS External cameras

必须是USB-C接口,所以在使用的时候需要确认USB video Class(UVC)
好像也可以使用HDMI

AVFoundation

用于处理一批视频多媒体数据的创建,编辑,播放和捕获,时音频视频功能的基础库。
有什么功能呢:
1.可以支持多种音频视频格式,用来播放音频和视频
2.通过麦克风和摄像头录制音频视频内容
3.可以对视频内容进行编辑添加特效等
4.支持处理音视频文件的元数据,如标题,作者,描述
5.将多个音视频文件 混合成一个文件

AVCapture-prefixed

ipadOS External cameras_第1张图片

使用external camera的流程

app先使用AVCaptureDevices表示camera和microphone,这里面封装了AVCaptureDeviceInput来嵌入一个

AVCaptureSession

AVCaptureSession是一个central control object of the AVCapture graph
AVCaptureSession会接收捕获设备的数据(比如说camera,microphone),然后将数据封装后给输出设备(比如说sceen)有的时候会放到一个文件中,甚至变成一张图片

AVCapturePutputs

包含movieFile,Phote,VideoData,AudioData,MetaData,DepthData
MovieFileOutput: 会记录QuickTime movies
PhotoOutput: captures high-quality stills and live photos
Data outputs:deliver video or audio buffers from the camera or mic to your app
MetaData,DepthData:for live camera preview ,is a special type of output

AVCaptureVideoPreviewLayer

是CALayer的子类

每一个external camera 可以被看作一个ACVaptureDevice instance
三个重要的属性:media type ,device type ,position
AVMediaType.video
AVCaptureDevice.DeviceType.external
AVCaptureDevice.Position.unspecified

external camera相较于build-in camera需要更注意,因为user可以connect和disconnect

if reconnected,camera is represented by a new AVCaptureDevice
可以通过key-value observe来检测连接
AVCaptureDevice.isConnected和AVCaptureDevice.DiscoverySession.devices

当设备连接状态发生改变的时候AVCaptureDevices也会post a norifications
AVCaptureDeviceWasConnected
AVCaptureDeviceWasDisconnected
然后将这些消息发送到background queues
synchronize with AVCaptureSession and UI

专业用语

build-in camera 内置摄像头

如何升级到IOS17

进入 Apple Beta 版软件计划 网站 sign in后点击IOS17然后在ipad上
settings->general->software update->beta update选择IOS17 public就行了

apple demo

CACam
必须是IOS17,并且不能允许在simulate上,因为xcode是没有权限访问camera的

AVCam 是默认选择后置摄像头

在AVCaptureSession delegate any interaction 时是将一个事件放到dedicated serial dispatch queue(sessionQUeue 并不是main queue)
就是不会阻碍其他事件

ipadOS External cameras_第2张图片

这些被使用的microphone或者camera都需要用户授予权限,AVFoundation用AVAuthorizationStatus枚举了权限state,来辨别哪些device是restricted(受限),denied等等

通过使用discovery session来列出有效的设备类型,比如说有broken camera(损坏的摄像机)就不算作有效的device

每一个AVCaptionDevice就表示已一个拓展camera

external camera

有三种重要数据
media type,device type,position(the external camera device position is unspecified.
用三个属性可以去发现这个external camera 通过API

quick time movies

苹果公司开发的多媒体技术和容器格式 QuickTime(快速时间)创建的电影文件。QuickTime 是一种广泛用于音频、视频和动画的多媒体技术,而 QuickTime Movie 是一种常见的文件格式,用于存储包含音频、视频和文本等元素的多媒体内容。

MetaData(元数据):

元数据是描述数据的数据,它提供有关数据的信息,如创建日期、作者、文件大小、分辨率等。在照片领域,元数据可以包括照片的拍摄日期、相机型号、曝光时间、焦距等信息。元数据可以帮助您更好地组织、管理和了解您的照片集。

Depth(深度):

在图像处理中,“depth” 通常指的是图像的深度或色彩深度。它表示图像中每个像素所能够表示的颜色或灰度级的数量。较高的深度意味着图像具有更多的色彩细节和灰度级,而较低的深度则会导致图像失去一些细节。常见的图像深度包括8位(256种颜色)、16位(65536种颜色)和24位(约1600万种颜色)等。

问题

如果是要真机编译就需要xcode改为 xcode15 beta
官网下载

你可能感兴趣的:(OC,apple,vision,pro)