大多数浏览器和
Developer App 均支持流媒体播放。
-
集成连续互通相机至您的 macOS App 中
了解如何借助连续互通相机,在任何 Mac App 中将 iPhone 设置为外部相机。不管您是在开发视频会议软件,或是在打造以创新方式使用相机的体验,您都将学习到如何利用自动相机切换来优化您的 App。我们还将探索如何识别用户偏好和系统偏好相机,带您了解从 iPhone 视频流捕捉高分辨率优质照片的 API,以及更多内容。要进一步了解相机拍摄,请随后观看 WWDC22 的“了解 iOS 相机拍摄的改进”。
资源
相关视频
WWDC23
WWDC22
WWDC21
-
下载
♪ 柔和乐器演奏的嘻哈音乐 ♪ ♪ Karen Xing: 嗨 我是 Karen Xing 我是相机软件团队的工程师 欢迎来到 “集成连续互通 至您的 macOS App 中“ 的讲座 首先 我将谈一谈 什么是“连续互通”相机? 接下来 我将探讨您的 App 如何 借助“连续互通”相机 实现相机的自动选择 最后 我将介绍 macOS 13 中用于 “连续互通”相机的全新 API 有了“连续互通”相机 您就可以将 iPhone 用作网络摄像头 无缝切换的设置 让您只需将 iPhone 移至 Mac 附近 它就能通过无线方式连接 使您快速加入通话 满足以下几项条件 您的 iPhone 即可成为 您 Mac 上的外接摄像头和麦克风 首先 您必须使用 macOS 13 和 iOS 16 Mac 和 iPhone 必须登录同一 通过双重认证的 Apple ID 如果使用有线方式连接 手机需通过 USB 连接到 Mac 如果使用无线方式连接 两台设备需位于彼此附近 并同时开启蓝牙和 Wi-Fi 与其进行口头介绍 不如由我立刻演示 “连续互通”相机 在设备上的神奇表现 我身边有一台 MacBook Pro 和一台 iPhone 13 Pro 两台设备 都登录了同一 Apple ID
手机放置在 与我的 MacBook 相连的支架上 我将加入与同事 Eric 的 视频会议通话 并向您展示如何在 Zoom 中 使用“连续互通”相机
这个 App 首先使用内置摄像头启动 随后 一个流程指引对话框出现 介绍您可以使用新相机实现的功能 当您将 Mac 升级到 macOS 13 之后 首次打开“相机” App 以及有一台可以使用 “连续互通”相机的 iPhone 时 此对话框将出现一次
嗨 Eric! Eric:哦 Karen!嗨! 在系统显示流程指引对话框后 “连续互通”相机和麦克风设备 将在所有 App 中可用
让我们切换到这个相机 看看它的使用效果
“连续互通”相机使用 iPhone 的后置摄像头系统 让您获得期望中 iPhone 所能实现的 出色的视频质量 并适用于手机的所有四个朝向
竖排模式为您提供 与横排模式相比更放大的画面
“连续互通”相机还能实现 网络摄像头从前无法实现的功能 其中包括数个新的视频效果 您可能已经很熟悉 iOS 14.5 和 macOS 12.3 中引入的 “人物居中”和人像模式 如果还不熟悉 我强烈建议您观看 WWDC 2021 中的 “新的相机拍摄功能”讲座 了解更多关于系统视频效果 以及如何在 App 中 与其交互的信息 让我们前往“控制中心” 并为“连续互通”相机 启用系统视频效果
当您四处移动时 “人物居中” 效果 确保您处在画面之中
人像模式将背景模糊 自然而然地把焦点放在您身上 人像模式仅支持在搭载 Apple 芯片的 Mac 上使用 但有了“连续互通”相机后 它现在可用于所有搭载 Intel 和 Apple 芯片的 Mac
“摄影室灯光”是一种 新的系统视频效果 在 macOS 13 上可用 可在 iPhone 12 或更新机型上 使用此效果 想以最佳状态出现在屏幕上 就启用这个功能吧 它令人惊叹的照明效果 能使背景变暗 照亮您的脸 “摄影室灯光”非常适合 光照条件不佳的环境 例如您正身处窗前 为了进行清晰比较 我将分别展示每个视频效果 同时使用效果也不错
这些效果可以任意组合 同时使用
我非常想为您展示 “连续互通”相机 另一个很棒的功能 当您需要协同工作 并分享办公桌上的物件时 可以使用“桌面视图” macOS 13 配备了 “桌面视图” App 可以进入“控制中心”启动
它的工作原理跟悬吊俯拍相机类似 但不需要任何复杂的设备 iPhone 会将 超广角摄像头源分成两部分 同时呈现桌面和人脸 让您可以协作完成学校项目 或教朋友编织针法 它利用超广角摄像头 扩展的垂直视野 将透视失真校正 应用于裁剪出来的画面 随后旋转这些画面创建桌面视图 您可以使用大多数视频会议 App 均提供的共享窗口功能 同时分享“桌面视图”与主摄像头源
“桌面视图”也可以单独使用 无需与主摄像头视频流并行 但是 当您确实需要同时 使用“桌面视图”和主摄像头视频流 我们建议在主摄像头中 启用“人物居中” 以获得拍摄人物面部 和身体更好的取景效果 手机放置的横排和竖排模式 均支持这项功能 竖排模式的用途最为广泛 因为垂直视野的范围更大 “桌面视图”相机 API 也可以 为您的 App 提供 适配的定制集成方案 稍后我将谈到 API 在 Mac 上进行视频会议通话期间 我们既希望您专注于会议本身 也想确保 您不会错过任何重要事项 使用“连续互通”相机时 您手机上的所有通知都将静音 重要的来电通知 将转发至您的 Mac 上 再见 Eric! Eric:再见 Karen!
Karen:我们刚刚谈到了 无需在 App 中 编写任何一行新代码 就可以让用户获得的出色体验 随着一些新 API 的运用 “连续互通”相机体验可以 在您的 App 中变得更为精妙绝伦 现在大多数用户都至少 在 Mac 上拥有两种相机设备 我们进一步思考了 应当如何管理相机 在 macOS 13 之前 当设备被拔出 或者系统中有 更好的相机可供使用时 通常需要在 App 中 手动进行选择 我们希望通过在 App 中 实现相机的自动切换 为客户提供绝妙体验 我们在 AVFoundation 框架中 添加了两个新的 API 帮助您在 App 中构建此功能: AVCaptureDevice 上的 类属性 userPreferredCamera 以及 systemPreferredCamera userPreferredCamera 是一个读/写属性 每当用户在 App 中选择相机时 都需要设定此属性 这就让 AVCaptureDevice 类 能够学习用户的偏好 为每个 App 存储一份跨启动和重启的相机列表 并使用该信息推荐相机 它还考虑到是否有任何相机 连接或断开的情况 该属性可键值观察 并可以基于用户偏好 智能地返回最佳选择 当最近的首选设备断开连接时 它会自发地更换 列表中下一个可用相机 即使没有用户选择历史 或未连接任何首选设备 该属性也将始终尝试返回 可即时使用的相机设备 并优先考虑之前 已进行过视频流传输的相机 只有在系统中没有可用相机时 才返回 nil systemPreferredCamera 是一个只读属性 它将 userPreferredCamera 与其他因素结合 对系统中相机的最佳选择进行建议 例如 当“连续互通”相机出现 并示意应当自动选择它时 该属性会返回 与 userPreferredCamera 不同的值 该属性还对设备挂起进行内部追踪 因此它会将未挂起的设备 优先于挂起的设备 这有助于构建自动切换行为 便于在内置摄像头 因 MacBook 合盖而挂起时 更换为另一个摄像头 出现以下情况时 “连续互通”相机 将示意自动选择它: 手机放在固定支架上 处于横排模式 屏幕关闭 并通过 USB 连接到 Mac 或与 Mac 距离接近 在这种情况下 用户的意图很明确 即应当将该备 作为“连续互通”相机使用
采用 systemPreferredCamera API 时 您应当不断通过键值观察该属性 并更新相应的 AVCaptureSession 视频输入设备 提供绝佳的相机选择体验 userPreferredCamera 和 systemPreferredCamera 已被不少第一方 App 采用 随着越来越多的 App 采用这些 API 我们将能够为客户提供 一种适用于 Apple 设备的 通用且稳定的相机选择方法 让我来为您演示说明 “连续互通”相机自动切换 在 FaceTime 通话中的应用
在 FaceTime 通话中 我正处于自动相机选择模式 如果想要在 App 中同时提供 手动和自动行为选项 我们建议添加新的 UI 用于启用和禁用自动模式
FaceTime 通话目前正通过 内置摄像头进行视频流传输 当我将手机从办公桌上拿起来 并将其放在 MacBook 后面的支架上时…
FaceTime 通话无缝切换 为使用“连续互通”相机 进行视频流传输 新的类属性 systemPreferredCamera 将在此情况下发挥作用 当手机处于随时 可以传输视频流的状态时 属性值更改为“连续互通”相机 您或许希望用类似的方式构建 App 以下是我实施自动相机选择 和手动选择模式的秘诀 当自动相机选择启用时 开始对 systemPreferredCamera 属性进行键值观察 通过更新您会话的输入设备 随时跟进 systemPreferredCamera 的变化 在自动模式下 我们强烈推荐 仍然为用户提供 自主挑选相机的选项 当用户选中不同的相机时 为该设备设定 userPreferredCamera 随后反映在 systemPreferredCamera 属性值中 当自动相机选择关闭时 停止对 systemPreferredCamera 属性的键值观察 在手动模式下 无需追踪 systemPreferredCamera 您需要将用户选择的相机 更新至会话的输入设备 但与自动模式相同 您仍然需要 在每次用户选择不同的相机时 设定 userPreferredCamera 属性 保存用户偏好相机的历史纪录 并在回到“自动相机选择”模式时 推荐合适的相机 如需了解整合 userPreferredCamera 和 systemPreferredCamera API 的 最佳实践 请查看 全新示例 App “‘连续互通’相机示例” 不仅为 Mac 带来绝妙的网络摄像头体验 “连续互通”相机 还为您提供了新的机会 在Mac App 中 充分利用 iPhone 特有的 强大相机功能 我们在 macOS 13 上 添加了一些 AVCapture API 帮助 App 更好地利用 “连续互通”相机设备 由于“连续互通”相机的存在 我们在 macOS 上实现了令人惊叹的 iPhone 级照片拍摄质量 首先 高分辨率照片的 拍摄将得到支持 从前 macOS 仅支持与视频分辨率 同等的照片拍摄 从 macOS 13 开始 您将能够 使用“连续互通”相机拍摄 分辨率高达 1,200 万像素的照片 想要启用这项功能 在拍摄会话开始前 首先要在 AVCapturePhotoOutput 对象上 将 highResolutionCaptureEnabled 设置为 true 然后在每次拍摄的 photoSettings 对象上 将 highResolutionPhotoEnabled 属性设置为 true 除了拍摄高分辨率照片 “连续互通”相机还支持 控制照片质量优先于拍摄速度 实现方式是首先 在 photoOutput 对象上 设置 maxPhotoQualityPrioritization 随后在 AVCapturePhotoSettings 对象上 为每次拍摄设置 photoQualityPrioritization 属性 如需了解 如何为 App 选择正确优先级 请您查看 WWDC 2021 “使用视频格式拍摄高质量照片” 另一个与照片相关的功能 是闪光灯拍摄 您可以通过在 photoSettings 对象上设置 flashMode 来控制闪光灯是应该打开、关闭 还是自动选择 基于场景和光照条件 我们也让 AVCaptureMetadataOutput 适用于 macOS 允许对拍摄会话产生的时序元数据 进行处理 您现在可以对来自 iPhone 的 面部元数据对象 和人体元数据对象进行流传输 让我们看看如何设置会话 来接收人脸元数据对象 在具备适当的视频输入和输出的 会话设置完成后 您需要创建 AVCaptureMetadataOutput 并调用 addOutput 将其添加到会话中 要特定接收人脸元数据 必须在输出处设置对象类型数组 包含人脸对象类型 通过检查 availableMetadataObjectTypes 属性 确保能够支持 请求的元数据类型 接下来设置委托 接收元数据回调 会话开始运行后 您将得到回调 以及实时生成的人脸元数据对象 除了我们刚刚谈到的照片拍摄输出 和拍摄元数据输出 “连续互通”相机 还支持视频数据输出 电影文件输出和视频预览层功能 以下是“连续互通”相机支持的 视频格式列表 了解这些信息 有助于将此相机 集成到您的 App 中 它支持三种 16x9 画幅格式 从 640x480 到 1080p 和一种 4x3 画幅格式:1920x1440 您可以选择 支持最高每秒 30 帧 或最高每秒 60 帧的格式 视需要而定 另一项主要新增功能 是“桌面视图”设备 API “桌面视图”相机作为 单独的 AVCaptureDevice 公开 有两种方法可以找到这个设备 第一种方法是 通过在设备发现会话中 查询 AVCaptureDeviceTypeDeskViewCamera 来进行查找 另一种方法是 如果您已经知道 主摄像头的 AVCaptureDevice 对象 就可以使用该设备上的 companionDeskViewCamera 属性 来访问“桌面视图”设备 此 API 将有助于在周围存在 多个“连续互通”相机的情况下 对主摄像头和 “桌面视图”设备进行配对 一旦有了所需的“桌面视图”相机的 AVCaptureDevice 对象 您可以将它与拍摄视频数据输出、 电影文件输出、 或拍摄会话中的 视频预览层一起使用 就像使用其他相机设备一样 “桌面视图”设备 目前支持一种流格式 即 420v 像素格式 该格式的分辨率为 1920x1440 支持的最高帧率为每秒 30 帧 讲座就到这里结束了 您已经了解了“连续互通”相机 如何在 macOS 上 实现奇妙的相机选择 以及几个 在 Mac App 中用于集成 “连续互通”相机的新 API 我很期待看到您运用这些 API 希望您之后 在 WWDC 上一切顺利 ♪
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。