ipadOS External cameras

news2024/11/13 9:27:04

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

AVFoundation

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

AVCapture-prefixed

在这里插入图片描述

使用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)
就是不会阻碍其他事件

请添加图片描述

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

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

问题

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/888644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RocketMQ(模式详解,安装)及控制台安装

下载 环境 64位操作系统,推荐 Linux/Unix/macOS 64位 JDK 1.8下载地址 https://rocketmq.apache.org/zh/download/ RocketMQ 的安装包分为两种,二进制包和源码包。 二进制包是已经编译完成后可以直接运行的,源码包是需要编译后运行的。 单…

【Android】解决Lint found fatal errors while assembling a release target

报错信息: Android在debug模式下打包没有问题,但是在打包release版本时出现一下问题: 结果图 原因 我项目的原因是因为把正式、测试地址放到代码里了,忘记选中正式环境的地址,导致打正式包有问题;大家如果…

ASEMI肖特基模块MBR400100CT参数规格

编辑-Z MBR400100CT参数描述: 型号:MBR400100CT 反向重复峰值电压(VRRM):100V 正向直流电流(I0):400A 正向(不重复)浪涌电流(IFSM):3300A 结温 (TJ):-40 to 175℃ 储存温度(T…

mybatis生命周期和作用域

前言 作用域和生命周期错误使用会导致并发问题。 mybatis执行过程: 1、SqlSessionFactoryBuilder SqlSessionFactoryBuilder 占用XML资源来创建多个 SqlSessionFactory实例; SqlSessionFactoryBuilder 实例的最佳作用域是方法作用域(也就…

MBSE项目的全新数据、信息与知识管理方法|数据模型标准化思路

仅供学习使用 An original Data, Information and Knowledge management approach for model-based engineering projects 作者:M. El Alaoui, S. Rabah, V. Chapurlat, V. Richet , R. Plana 来源:https://doi.org/10.1016/j.ifacol.2022.10.135 文章详…

强化学习A3C算法

强化学习A3C算法 效果: a3c.py import matplotlib from matplotlib import pyplot as plt matplotlib.rcParams[font.size] 18 matplotlib.rcParams[figure.titlesize] 18 matplotlib.rcParams[figure.figsize] [9, 7] matplotlib.rcParams[font.family]…

谓语动词(动词不定式(短语)、动名词、分词(短语))作定语

动词不定式(短语)作定语 动名词作定语 分词(短语)作定语 着重记忆及物动词

剑指offer-2.2字符串

字符串 C/C中每个字符串都以字符"\0"作为结尾,这样我们就能很方便地找到字符串的最后尾部。但由于这个特点,每个字符串中都有一个额外字符的开销,稍不留神就会造成字符串的越界。比如下面的代码: char str [10]; strc…

UWB现场安装通常涉及以下步骤

UWB现场安装通常涉及以下步骤: 1.确定区域需求:首先,确定需要进行UWB定位的区域和目标。这可能是一个室内环境、仓库、工厂或其他特定的工作场所。 2.设计系统布局:根据区域的特点和目标定位需求,设计系统的布局和基…

关于Firmae缺失binwalk模块

问题 david707:~/FirmAE$ sudo ./run.sh -c weyow ./WAM_9900-20.06.03V.trx [*] ./WAM_9900-20.06.03V.trx emulation start!!! Traceback (most recent call last):File "./sources/extractor/extractor.py", line 19, in <module>import binwalk ModuleNot…

红帽8.2版本CSA题库:第十题配置用户帐户

红帽8.2版本CSA题库&#xff1a;第十题配置用户帐户 useradd -u 3533 manalo #传创建用户指定uid为3533 echo flectrag | passwd --stdin manalo #设置密码 tail -1 /etc/passwd #查看

globals()与locals()函数

在Python中&#xff0c;globals()和locals()是两个内置函数&#xff0c;用于获取当前作用域内的全局和局部命名空间中的变量和对象。 一、globals() :这个函数返回一个包含当前全局作用域中所有变量和对象的字典。在函数内部调用globals()将返回全局命名空间中的变量&#xf…

密码湘军,融合创新!麒麟信安参展2023商用密码大会,铸牢数据安全坚固堡垒

2023年8月9日至11日&#xff0c;商用密码大会在郑州国际会展中心正式开幕。本次大会由国家密码管理局指导&#xff0c;中国密码学会支持&#xff0c;郑州市人民政府、河南省密码管理局主办&#xff0c;以“密码赋能美好发展”为主题&#xff0c;旨在推进商用密码创新驱动、前沿…

2023年第四届全国人工智能大赛初赛晋级复赛名单公示

由深圳市科技创新委员会、鹏城实验室共同主办&#xff0c;新一代人工智能产业技术创新战略联盟&#xff08;AITISA&#xff09;承办&#xff0c;华为技术有限公司、中国工商银行股份有限公司深圳市分行、中国农业银行股份有限公司深圳市分行、中国建设银行股份有限公司深圳市分…

无线测温产品在半导体制造项目的应用

摘 要&#xff1a;半导体被誉为“制造业的大脑”&#xff0c;在关系国家安全和国民经济命脉的主要行业和关键领域占据支配地位&#xff0c;是国民经济的重要支柱。 随着数字技术的发展和数字经济在国民经济中所占比重越来越高&#xff0c;半导体产业的重要性还会进一步提升。安…

【制作npm包4】api-extractor 学习

制作npm包目录 本文是系列文章&#xff0c; 作者一个橙子pro&#xff0c;本系列文章大纲如下。转载或者商业修改必须注明文章出处 一、申请npm账号、个人包和组织包区别 二、了解 package.json 相关配置 三、 了解 tsconfig.json 相关配置 四、 api-extractor 学习 五、npm包…

高等数学教材啃书汇总重难点(三)微分中值定理与导数的应用

本章节包含多个知识点&#xff0c;一些列微分中值定理是考研证明题的重头戏&#xff0c;而洛必达和泰勒展开则是方法论的天花板难度&#xff0c;虽然对于小题的考察难度较低&#xff0c;整体上仍需重点复习 1.费马引理 2.罗尔定理 3.拉格朗日定理 4.柯西中值定理 5.洛必达法则 …

算法竞赛入门【码蹄集新手村600题】(MT1160-1180)C语言

算法竞赛入门【码蹄集新手村600题】(MT1160-1180&#xff09;C语言 目录MT1161 N的零MT1162 数组最大公约数MT1163 孪生质数MT1164 最大数字MT1165 卡罗尔数MT1166 自守数MT1167自守数IIMT1168 阶乘数MT1169 平衡数MT1170 四叶玫瑰数MT1171 幻数MT1172 完美数字MT1173 魔数MT11…

ODB++资料解析

ODB文件是由VALOR提出的一种ASCII码&#xff0c;双向传输文件。奥宝公司和康代公司的设备都是用的ODB格式进行PCB的生产和检测。 对ODB文件进行解析把数据栅格化很重要&#xff0c;查了网上找不到一个成熟能用的ODB文件解析代码。自己上手写了一个。 当前解析一些载板&#x…

SNMP简单介绍

SNMP SNMP是广泛应用于TCP/IP网络的网络管理标准协议&#xff0c;该协议能够支持网络管理系统&#xff0c;用以监测连接到网络上的设备是否有任何引起管理上关注的情况。SNMP采用轮询机制&#xff0c;提供最基本的功能集&#xff0c;适合小型、快速、低价格的环境使用&#xf…