大多数浏览器和
Developer App 均支持流媒体播放。
-
visionOS 中“快速查看”的新功能
探索 visionOS 中的“快速查看”如何优化 App 内的文件预览和编辑体验。我们将介绍“快速查看”功能方面的 App 内体验和窗口式体验整合,并介绍一个让你能够在 App 内自定窗口式“快速查看”体验的全新 API。我们还将分享通过“快速查看”功能查看 3D 模型的最新增强功能。
章节
- 0:00 - Introduction
- 2:20 - PreviewApplication API
- 9:15 - 3D preview enhancements
资源
相关视频
WWDC24
-
下载
大家好 欢迎观看 “visionOS 中 ‘快速查看’的新功能” 我叫 Naveen 是一名软件工程师 在 visionOS“快速查看”团队工作 今天 我将分享“快速查看”的 新增功能 并为大家展示如何 在应用程序中使用这些新功能 我们先来了解一下 “快速查看”是什么 “快速查看” 是一款多功能系统工具 能够在所有 Apple 平台上 无缝实现文件预览和编辑功能 “文件”、“信息”和“无边记” 等许多系统 App 均使用“快速查看”功能 你可以查看和编辑各种 常见文件类型 同时确保文件访问 安全可靠 一些重要文件类型可以 在 FaceTime 通话中使用同播共享 3D 内容在 visionOS 上 更显精美逼真 你只需提供一个 URL 就能在“快速查看”中轻松查看 要在“快速查看”中预览 3D 内容 主要有两种方法 第一种是 App 内体验 它与“快速查看”无缝整合 作为应用程序内的 全屏覆盖视图 第二种方法是 窗口式“快速查看”体验 在这种体验中 3D 模型显示在一个空间容器中 提供一种分离式体验 让你可以 在 App 运行时查看内容 从而增强多任务处理能力 以前 你可以通过 拖放功能来获得这种体验
我们的目标是让你的 App 能够 更好地控制“快速查看”体验 同时还可以利用 SwiftUI 和 Swift 并发 今年 我们推出了全新的 PreviewApplication API 它基于所有这些原则构建而成 现在 只需编写几行代码 就能 将“快速查看”整合到你的 App 中 这个 API 不仅能让你预览 各个文件 还提供了一种方法 可以在集合视图中打开多个文件 你可以自定默认 编辑选项 它提供了一种直观方式来管理 预览文件的生命周期
以上只是概要介绍了一下 这个新 API 在下一部分中 我将分享更多详细信息 帮你了解如何借助 新推出的 PreviewApplication API 为你的 App 自定“快速查看”体验
稍后 我将介绍“快速查看”中 最新的 3D 预览增强功能
下面我们来深入了解一下 PreviewApplication API 的用法
我创建了一个 App 让用户可以与亲朋好友 分享自己的旅行经历 我的朋友 Michael 添加了一篇手记 内容是关于他最近的 加拉帕戈斯群岛之旅 他在旅途中拍摄了许多 令人惊叹的空间视频 我想在自己的 App 中 以全空间展示的形式预览这些视频 就像“照片”App 一样 “快速查看”能够有效满足这个需求 我给大家展示一下 使用新的 PreviewApplication API 来完成这项操作有多么简单
在我的 App 中 我创建了一个 名为 ThumbnailImage 的自定视图 这代表一篇手记中的一个文件 我希望在我轻点它时 将在窗口式 “快速查看”中打开这个文件
为此 我将添加“onTapGesture”
并调用 PreviewApplication.open
在 URL 的参数中 我将提供所选文件的 URL
我们来运行这段代码 看看这项功能的实际效果 当我轻点某个文件后
它随即在窗口式“快速查看”中打开
并能以全空间展示的形式 进行播放
我可以继续与 App 互动 同时欣赏这个视频
我还可以预览 这篇手记中的所有文件 我之前传入了一个 URL 但这个 API 可以接受一组 URL
这里 我将提供 当前手记中的所有 URL
对于所选 URL 我将使用所选文件的 URL
这会在集合视图中 打开所有文件 我们重点关注所选文件 下面来看一下效果 当我轻点同一文件后 可以看到一个集合视图 带有导航箭头 这让我可以在这篇手记中的 所有文件之间进行导航
太棒了! 现在 我不需要一个个打开文件 就能欣赏所有这些精彩瞬间 但是 我发现这个标题 并不是我想要的 当我轻点它后 可以看到 修剪等编辑选项
“快速查看”默认支持 这些便捷的编辑选项 所做的任何编辑都会 自动写回原始文件
为了让你更好地控制这一点 这个 API 包含一个 使用“PreviewItem”的选项
对于 URL 我将提供“selectedURL”
“displayName”代表 顶部菜单中的标题 我将把它命名为 当前手记的名称
通过将 editingMode 设为停用
可以从顶部菜单 移除编辑选项 你也可以使用其他编辑模式 如需了解更多详细信息 请参考相关 API 文档
最后 我将在这个 API 中 使用“previewItem”
我们来运行这段代码 看看具体的变化 现在 标题显示的是 手记的名称 当我访问顶部菜单时 可以看到已不再提供 编辑选项 这正是我想要的效果 这个 API 确保每个文件 仅提供一个预览 再次打开同一文件 将不会创建新预览 但如果现有预览处于不可见状态 则会显示现有预览 为此 我想显示一个指示符 表明预览处于打开状态 但是 如何确定预览已关闭 来移除这个指示符呢? 幸运的是 这个 API 中有一个新选项 用于管理预览的生命周期 调用 PreviewApplication.open 后 我会收到一个会话实例 我将它存储在 state 变量中
这个会话包含事件 也就是 Swift 异步数据流
我可以使用事件来判断 预览处于打开还是关闭状态 我将创建一个方法 来观察这个事件
为了直观表明 预览处于打开状态 我将使用眼睛图标来表示 已在“快速查看”中预览文件
我将基于预览状态 更改这个图标的不透明度
我们来看看这项功能的实际效果 打开新预览后 可以在缩略图上看到图标 这表示预览处于打开状态
关闭预览后 图标就消失了 这就是我想要的效果
以上都是一些很好的方法 你可以通过这些方法 使用 PreviewApplication API 为你的 App 自定“快速查看”体验 正如我刚才展示的 “快速查看”也是为你的 App 添加空间媒体预览的好方法 如需进一步了解如何为你的 App 创建空间照片和视频 请参考 Vedant 关于 “打造引人入胜的空间照片 和视频使用体验”的讲座
接下来 我们探讨针对在“快速查看”中 查看 3D 内容所推出的最新增强功能 你的反馈非常宝贵 今年 我们已经整合了 两项备受期待的新增功能 第一个是表面映射 这是一个 iPhone 3D 模型 它看起来很不错 我想将它放在办公桌上 完全没问题 因为“快速查看”现在支持 将任意 3D 模型对齐到水平表面 例如地板或桌子
你可以捏合并拖移窗口栏 让模型靠近办公桌 这项操作让 iPhone 能够与办公桌对齐 你还会听到 示意这项操作的声音
对齐后 你可以在桌子上 随意拖移模型
“快速查看”针对所有 3D 模型 自动启用表面对齐功能 无需额外操作 它支持水平表面 例如桌子或地板 为了避免 3D 模型 与表面发生碰撞 “快速查看”在对齐后 会停用俯仰翻转 要使 3D 模型看起来 像是与表面对齐 确保模型的底部 位于原点
这就是“快速查看”中的 表面映射功能 关于下一个增强功能 我们再来看一下 iPhone 模型
大家都知道 iPhone 有很多颜色选项 以前 要预览颜色 你需要 针对每种可能的组合 订购单独的 USDZ 文件 如果这些组合都在同一个文件中 岂不是更好? 现在 这个愿望实现了
“快速查看”现在支持配置 让你可以在不同的颜色之间进行选择 并且在一个文件中就能完成 下面我来快速演示一下 “快速查看”中的配置 轻点底部的菜单后 会看到新的选项 让我可以更改 这台 iPhone 的颜色 选择“颜色” 并将颜色更改为白色钛金属
我很喜欢这个颜色 在“快速查看”中查看 不同的配置就是这么简单 “快速查看”支持针对 USDZ 文件和 Reality 文件的配置
配置等同于 USDZ 中的变体
在 visionOS 上 配置还会在 加入 FaceTime 通话的 所有用户之间同步
此外 所有平台都支持配置 包括 iOS 和 macOS 这是同一台 iPhone 在 iOS 中的显示效果
我可以直接在“快速查看”预览中 切换到不同的配置 这是在购买之前 查看所有颜色的好方法
再来看一个 与应用配置有关的例子 我可以直接通过“快速查看” 轻松了解太阳系中的所有行星 下面来深入了解一些 与 USDZ 中的变体有关的示例代码 正如我之前提到的 “快速查看”中的配置 等同于 USDZ 文件中的变体 这是一个代码片段 代表 USDZ 中的 iPhone 模型
确保通过“defaultPrim” 定义所有变体 这将确保“快速查看”能够 正确查询并显示相应内容
我使用“Color”作为标题 “Black Titanium”作为默认颜色 它们显示在模型旁边 表示当前 载入的配置
轻点配置按钮后 可以选择 其他颜色
现在我选择“White_Titanium” 这将使用我选择的颜色 重新载入模型
由于变体名称中 不支持空格 因此我使用了下划线 在“快速查看”中显示时 下划线会自动转换为空格 编写配置时 请考虑对载入时间的影响 避免包含过多的纹理、复杂的几何体 也要避免大量使用着色器 配置要能 快速无缝载入 提供顺畅的“快速查看”体验 在不同的设备和平台上 全面测试配置 也是一个好主意 这可以确保随时随地提供 恰到好处的外观和使用体验 如需了解更多信息 欢迎观看 Scott 关于如何 为空间计算优化 3D 素材资源的讲座 下面我们来总结一下今天的内容 借助 PreviewApplication API 你的 App 能够更好地控制 窗口式“快速查看”体验 这还可以扩展到集合视图 编辑和管理会话 表面对齐让你可以更轻松地 在水平表面上放置 3D 模型 最后 配置让你可以 享受更好的“快速查看”预览体验 在产品、教育和设计领域 开辟了新的用例
以上就是“快速查看”中的新增功能 我已经迫不及待想要看看你的创作了
-
-
12:22 - Variants USDZ
#usda 1.0 ( defaultPrim = "iPhone" ) def Xform "iPhone" ( variants = { string Color = "Black_Titanium" } prepend variantSets = ["Color"] ) { variantSet "Color" = { "Black_Titanium" { } "Blue_Titanium" { } "Natural_Titanium" { } "White_Titanium" { } } }
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。