Audio & Video 进阶 1m
visionOS 26 新特性
What's new in visionOS 26
2025年6月9日
一句话判断
visionOS 26 不是小修小补——Volumetric 增强、附近共享、空间配件、180/360 度媒体支持、Mac 空间渲染、企业 API,几乎每个子系统都有重磅更新。
这场 Session 讲了什么
这是 visionOS 26 的全景式概览,覆盖了从 SwiftUI 到企业部署的方方面面。按重要性排序:
Volumetric 和 SwiftUI 增强:
- 深度对齐(depth alignment)让 2D 布局工具自然扩展到 3D
- Volume 里可以弹出 sheets、alerts、menus
- 动态 bounds 限制让内容可以”溢出”窗口边界
- Object Manipulation API 让 3D 物体跟随手势自然旋转
- SwiftUI、RealityKit、ARKit 三者间的坐标转换 API 统一了
系统功能:
- Foundation Models 框架:直接访问设备端大语言模型,支持 guided generation 和 tool calling
- SpeechAnalyzer:全新语音转文字 API,完全设备端运行
- Widget 支持 visionOS:可以贴墙贴桌,支持 proximity-based levelOfDetail
游戏和配件:
- 手部追踪速度提升 3 倍
- 支持 PS VR2 Sense 控制器和 Logitech Muse 空间触控笔
- macOS 空间渲染:用 Mac 的 GPU 渲染沉浸式内容流式传输到 Vision Pro
- TabletopKit 新增 CustomEquipmentState 和 CustomActions
共享体验:
- Nearby Window Sharing:同一房间的人可以共享窗口
- ARKit 共享 world anchors:共享内容锚定到物理空间
- Spatial Persona 正式脱离 beta
沉浸式媒体:
- 支持 180 度、360 度、广角媒体(Canon、GoPro、Insta360 相机)
- Apple Projected Media Profile (APMP):元数据驱动的投影方案
- Immersive Media Support 框架:自己创建、处理、分享 Apple Immersive Video
空间 Web:
- Spatial Browsing:网页内容可以变为空间媒体
- HTML
<model>元素:在网页里嵌入 3D USDZ 模型 - Web Backdrop:网页提供自定义沉浸式环境
企业 API:
- 主摄像头扩展访问(shared space 中可以和其他 app 同时使用)
- Protected Content:一个 view modifier 禁止截屏、录屏、AirPlay
- Window Follow Mode:窗口跟随用户移动
- Return to Service:企业设备共享时的安全重置
值得深挖的点
-
APMP 是媒体格式的基础设施级更新。它用元数据描述投影方式,让 180/360/广角内容能在 visionOS 正确播放。对有视频内容的 app 来说,这是必须支持的。
-
macOS 空间渲染改变了游戏开发的格局。用 Mac 的 GPU 做渲染,Vision Pro 做显示,可以做出远超设备本身算力的沉浸式体验。
-
Foundation Models 框架在 visionOS 上也能用。结合空间计算的上下文(用户的位置、手势、环境理解),设备端 LLM 可以做很多有趣的事。
-
共享 world anchors 是多人协作的基石。之前共享内容只在 SharePlay 会话里存在,现在可以锚定到物理空间,而且自动只和附近的人共享。
代码片段
统一坐标转换:
// 之前:在 SwiftUI view、RealityKit entity、ARKit anchor 之间转换很痛苦
// 之后:一个 API 搞定
let screenPoint = scene.convertPoint(entity.position, from: .realityKit, to: .uiView)
RealityKit Entity 直接在 SwiftUI 里 observe:
struct GameView: View {
@State private var player = ModelEntity(mesh: .generateSphere(radius: 0.1))
var body: some View {
RealityView { content in
content.add(player)
}
// Entity 现在是 Observable,可以直接绑定
.onChange(of: player.position) { _, newPosition in
updateHUD(for: newPosition)
}
}
}
Spatial Browsing 的 HTML model 元素:
<model src="chair.usdz" interactive>
<source src="chair-fallback.png" type="image/png">
</model>
最佳实践
- 如果你有 SharePlay 代码,在 visionOS 26 上不用改就能用 nearby sharing。但加了
isNearbyWithParticipant检查可以做更好的体验。 - 媒体 app 必须支持 APMP。特别是如果你支持用户导入外部相机的视频。
- 企业 app 考虑用 Protected Content 保护敏感视图,一个 modifier 就搞定。
- 用 progressive immersion style 做渐进式沉浸,比直接全沉浸更容易让用户接受。
- Quick Look 3D 模型自动获得 Object Manipulation 支持,不用写代码。
还有什么值得关注
- “What’s new in RealityKit” session 详细讲了 Environment Occlusion、MeshInstancesComponent 等。
- “What’s new for the spatial web” session 详细讲了 HTML model 元素和 Web Backdrop。
- “What’s new in Metal Rendering for Immersive Apps” 讲了 Compositor Services 的 hover effects、动态渲染质量、macOS 空间渲染。
- Canyon Crosser 和 Petite Asteroids 是两个新的示例 app,分别展示了 SwiftUI+RealityKit+ARKit 和 TabletopKit 的用法。
- Spatial Persona 脱离 beta 意味着你可以在正式产品里依赖它了。
Audio & Video 商业与教育 Design 图形与游戏 Photos & Camera Safari与Web SwiftUI 空间计算