了解如何为同一房间内佩戴 apple vision pro 的用户打造共享体验。我们将展示如何在你的 app 中整合同播共享并充分利用 arkit,介绍与附近 facetime 通话参与者共享窗口的流程有哪些更新,并介绍旨在实现流畅协作的全新 api。探索相关最佳实践,了解如何为身处同一空间的用户打造别具特色、易于发现且引人入胜的协作功能。
此文章由AI生成,可能存在错误,如有问题,请联系djs66256@163.com
与附近用户共享 visionOS 体验:构建无缝协作的空间应用
Apple 在 visionOS 26 中引入了一项革命性的同空间共享功能,让开发者能够为用户打造前所未有的协作体验。这项技术将 SharePlay 框架与 ARKit 深度融合,实现了物理空间中的虚拟内容共享。
近距离共享的核心机制
visionOS 26 的近距离共享功能通过窗口栏右侧的共享按钮实现一键分享。选择附近联系人后,所有参与者都会在相同位置看到共享窗口,窗口栏变为绿色标识共享状态。系统确保所有用户看到的窗口位置和尺寸完全一致,并支持以下交互特性:
- 窗口移动同步给所有用户
- 自动朝向人群调整方向
- 共同调整应用尺寸或贴合环境
- 数码表冠重新定位功能
- 指向时内容淡出确保可见性
SharePlay 框架的深度整合
建立互动式共享体验的关键在于集成 SharePlay 框架。开发者需要:
- 创建 GroupActivity 子类(如示例中的 BoardGameActivity)
- 在 SwiftUI 中添加 ShareLink 暴露活动
- 观察 GroupSession 处理会话状态
- 配置 supportsGroupImmersiveSpace 支持沉浸空间
1 | struct BoardGameView: View { |
增强同空间体验的新API
visionOS 26 为 SharePlay 引入了多项专为同空间用户设计的增强功能:
参与者检测
通过 GroupSession 的 activeParticipants 发布者和 isNearbyWithLocalParticipant 属性,可以精确识别附近参与者。
内容定位
从 GroupSession 的系统协调器获取 localParticipantState 的 pose 属性,实现基于用户实际位置的智能内容放置。
媒体同步
AVPlayer 与 AVPlaybackCoordinator 的深度整合确保同空间用户的音视频播放完全同步。
1 | let coordinator = AVPlayerPlaybackCoordinator() |
多窗口支持
使用 .groupActivityAssociation 视图修饰符指定与 SharePlay 关联的 WindowGroup:
1 | VideoPlayerView() |
ARKit 共享世界锚点技术
ARKit 在 visionOS 26 中新增了共享世界锚点功能,使虚拟内容能够固定在相同的物理位置:
- 检查 worldAnchorSharingAvailability 状态
- 创建 WorldAnchor 时设置 sharedWithNearbyParticipants: true
- 通过 anchorUpdates 序列接收共享锚点
1 | let anchor = WorldAnchor( |
设计最佳实践
构建出色的近距离共享体验应考虑以下原则:
- 易发现性:确保共享功能在系统UI中直观可见
- 多平台兼容:支持附近和远程参与者的混合体验
- 空间感知:充分利用物理空间增强临场感
- 渐进式体验:从简单窗口到沉浸空间的平滑过渡
应用场景展望
这项技术开启了丰富的应用可能性:
- 协作白板:实体墙上的虚拟协作空间
- 社交游戏:客厅中的沉浸式多人游戏
- 家庭影院:与朋友共享的电影之夜体验
- 室内设计:多人实时协作的家具布置方案
相关视频:
了解面向空间商务 App 的增强功能
自定支持同播共享的空间自影像模板
打造出色的空间播放体验
文档:
AVPlaybackCoordinator
Configure your visionOS app for sharing with people nearby
visionOS 26 的近距离共享功能代表了空间计算领域的重要进步,为开发者提供了构建下一代社交体验的强大工具。通过合理运用这些API,应用将能够创造更具沉浸感和连接性的用户体验。