What's new in visionOS 26
Audio & Video 进阶 1m

visionOS 26 新特性

What's new in visionOS 26

2025年6月9日

在 Apple 官方观看视频

一句话判断

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:企业设备共享时的安全重置

值得深挖的点

  1. APMP 是媒体格式的基础设施级更新。它用元数据描述投影方式,让 180/360/广角内容能在 visionOS 正确播放。对有视频内容的 app 来说,这是必须支持的。

  2. macOS 空间渲染改变了游戏开发的格局。用 Mac 的 GPU 做渲染,Vision Pro 做显示,可以做出远超设备本身算力的沉浸式体验。

  3. Foundation Models 框架在 visionOS 上也能用。结合空间计算的上下文(用户的位置、手势、环境理解),设备端 LLM 可以做很多有趣的事。

  4. 共享 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 空间计算