大多数浏览器和
Developer App 均支持流媒体播放。
-
集成媒体 App 与 HomePod
了解用户如何直接从 HomePod 与你的媒体 App 进行交互。我们将向你展示如何向你的 iPhone 或 iPad App 添加媒体意图,并帮助用户只需使用自己的声音,即可通过隔空播放将你的内容流式传输到 HomePod 扬声器。探索实施细节,并获取有关如何为音乐、有声读物、播客、冥想课或其他媒体类型创造出色体验的提示和最佳实践。要进一步了解创建出色隔空播放体验的信息,请观看 WWDC23 的课程“提升你的隔空播放音频体验”。
资源
相关视频
WWDC23
-
下载
♪ ♪
Alex:大家好 我是 Alex Abramets 欢迎大家观看讲座 “集成媒体 App 和 HomePod” 我今天将为大家介绍 Siri 的 一个很棒的 Home 新功能 从 iOS 17 开始 所有 HomePod 用户都可以要求 Siri 使用安装在 iPhone 或 iPad 上的 App 来播放媒体 这个 Siri 的新功能可让目前支持 SiriKit Media Intents 的 App 顺畅播放 HomePod 的内容 我会先介绍一下媒体 App 在 HomePod 上播放内容的扩展支持 然后再介绍支持的用例和体验 并展示执行这些用例 和体验的最佳方法 最后再介绍 这个功能如何与 Home 集成 先从 HomePod 支持更多 媒体 App 这一点开始介绍 HomePod 处理请求时 会向 iPhone 发送 SiriKit 意图 Siri 在 iPhone 上启动 App 并把隔空播放内容传回音箱 我们会在本次讲座的后面 详细介绍隔空播放的支持 HomePod 需要通过 Wi-Fi 连接 iPhone 来完成请求 这表示在处理请求时 HomePod 和 iPhone 要处于同一个网络 设备不需要靠在一起 如果我在客厅让音箱播放音乐 而我的手机在卧室充电 那 HomePod 也能成功播放 Siri 的媒体播放请求 可以连接多个媒介 包括大多数支持隔空播放的扬声器 目前 任何支持 SiriKit Media Intents 的 App 都能使用这个功能 而不需要改变任何代码 稍后 我会介绍几种 能提升用户体验和设备性能的方法 如果 App 的媒体播放、 加入和关联请求 不受 HomePod 的原生支持 这些请求会被分发到主 iPhone 上 请注意 在 HomePod 上 查找或搜索媒体的请求 会让 HomePod 播放媒体文件 Siri 依靠语音识别 把请求发送到 识别出来的 Home 用户的设备上 此外 “喜欢”或“添加”歌曲的请求 只适用于通过隔空播放 而不是通过 Siri 播放的内容 现在 许多既有的媒体 App 都可以在 HomePod 上使用 HomePod 已经 不仅仅是音乐播放器了 HomePod 可支持多种媒体类型 包括音乐、有声书、 播客、广播、冥想课等 任何新支持 SiriKit Media intents 的 App 都会自动支持 HomePod 你的 App 在 iOS 上能实现的功能 在 HomePod 上也能实现 例如 App 用户 可要求 HomePod 播放艺术家、 专辑、歌曲、音乐流派和热门歌曲 如果用户的请求提到了 App 名称 Siri 就会检查你的 iPhone 是否安装了这个 App 如果已安装 Siri 就会建立隔空播放连接 让这个 App 开始播放 用户需要的内容 比如 你的 App 是关于收听播客或有声书的 现在 你可以在 HomePod 上 收听最新的新闻 或者继续收听你在听的有声书 Siri 可以理解改变速度、快进 和控制回放的请求 媒体意图没有覆盖的 App 的特定请求 可通过 App Intents 实现 请查看讲座 “探索 App Intents 的改进功能” 和其他相关讲座进一步了解 那么 如何在 App 中 添加 Siri 呢? 先来了解一下要支持 SiriKit Media Intents 需要什么 然后再看看如何确保一切稳定运行 并创造出色的体验 支持 Media Intents 的现有 App 也能正常运行 例如 如果你的 iPhone 安装了 SoundCloud 然后 你让 HomePod 播放 SoundCloud 上的某些内容 那扬声器就会播放这些内容 通过 Siri 给你的 App 添加回放功能 需要几个简单的步骤 你需要添加一个意图扩展 并实施一些方法 把 Siri 回调 和搜索、播放连接起来 你可以在 2019 年的视频 “了解 SiriKit Media Intents” 和 2020 年的视频 “将 SiriKit Media Intents 扩展到更多平台” 中找到详细说明 我们来检查一个可以播放音乐的 示例 App 的代码 这里 我要检查这个请求是否 针对这个名称为“奋斗”的实体 如果是 就返回媒体项目 我们来试一下 嘿 Siri 在 Control Audio 上 播放 Dukes 的《奋斗》 Siri:现在在你的 iPhone 上 播放《奋斗》
Alex:曲子成功播放了 现在 我们再来问点别的 嘿 Siri 在 Control Audio 上播放爵士乐 Siri:我没有在 Control Audio 资料库里找到相关结果 Alex:这次 Siri 没有找到任何结果 发生这种情况 是因为 我的 App 不支持播放类型 因此 函数返回了“不支持”的回复 但是 我可以让 Siri 作出更好的回应 我可以为无法播放提供更具体的原因 比如“媒体类型不受支持” 或者 App 需要有效登录 在这些情况下 Siri 会 给出协助解决问题的回应 现在 我要修改我的代码 并添加一个保护语句 如果请求是播放 任何音乐类型 这个保护语句 就会返回一个更具体的错误代码 嘿 Siri 在 Control Audio 上播放爵士乐 Siri:Control Audio 不支持播放爵士乐 Alex:现在 Siri 的回应变成了 这个 App 不支持播放爵士乐 这个回答更有帮助 你可能想知道 Siri 发出请求时 你的 App 会接收到什么? 在前面的示例中 我们讨论了“mediaName” 和“mediaType”字段 我们来看看你的 App 可能 接收到的一些最常见的意图 简单的带有 App 名称的 “播放”会发送一个 不包含任何搜索条件的意图 音乐 App 可以播放个人混音或者电台 播客和有声书 App 可以恢复上次播放的项目 对于“在 App 中播放音乐”的请求 “音乐”会转化为“mediaType”字段 带有实体名称的“播放”请求 则只会提供 mediaName 字段 将由 App 决定实体的类型 不管是歌曲、艺术家、播客 还是其他类型 提及“歌曲”和歌曲名字会产生一个 相当于 Song (歌曲) 和 mediaName 的 mediaType 字段 这是查询“流行歌曲”的行为方式 媒体名称会设置为“music (音乐)” 排序次序会设置为“popular (流行)” 要求播放下一个内容 App 就会把这个内容添加到列表中 注意 “playbackqueuelocation”的值 为“next (下一个)” 如果你的 App 支持新闻、播客或有声书 你可能会收到“播放我的有声书”、 “播报最新新闻” 或者“播放科技新闻播客”的请求 你应该探索并尝试 Siri 针对你希望发送到 App 的 请求而产生的意图 解析结果后 Siri 会执行你意图扩展中的 “处理”步骤 你可以返回“handleInApp” 或“continueInApp”响应 “HandleInApp”会指示系统启动 App 并在后台播放媒体文件 “ContinueInApp”会指示系统 在前台启动 App 对于播放音频的请求 后台播放的体验会更好 因为后台播放不需要解锁手机 HomePod 接收到请求时 这一点会更明显 因为你的手机可能离得很远 请记住 你 App 对 Siri 回调的 响应速度要非常快 速度慢的请求 通常会被放弃或直接超时 务必让你的 App 在最多 10 秒内作出响应 速度越快越好 超过 10 秒后 Siri 的回复就会很普通 并且没什么帮助 如果你想告诉 Siri 你喜欢这首歌 或者这个播客 想把它加到播放列表里 应该怎么办? 支持 INAddMediaIntent 和 INUpdateMediaAffinityIntent 可让你的 App 能处理这些请求 实施方法 和 INPlayMediaIntent 很相似 对于隔空播放的内容 Siri 会把请求发送到 说话者的 iPhone 上 我们来回顾一下如何 让 App 和 Siri 的集成更稳固 首先是个人 App 词汇表 使用个人 App 词汇表后 你的 App 就可以向系统反馈 请求可能包含的用户特定的实体 这些实体可包括个人播放列表、 购买的有声书、播客、 最喜欢的艺术家或作者 通常情况下 只有前台 App 才能播放媒体文件 但在 Siri 请求期间 你的 App 可在后台播放音频 要做到这一点 在激活音频会话之前 请务必正确地配置 音频会话 这一点适用于所有支持的平台 包括 HomePod、iOS 和 CarPlay 车载 在这个示例中 把音频类别设置为播放 App 就会向系统反馈 它要播放音频了 音频类别、模式和路线共享策略 会影响系统 处理音频播放和中断的方式 把模式设置为“口语音频” 在音频中断时会暂停播放 而不是暂时降低内容音量 这个功能对播客 或播放有声书的 App 特别有用 这样听众就不会错过重要内容 我们再来看看 激活音频会话前没有把音频类别 设置为“.playback”的话 会发生什么 嘿 Siri 在 Control Audio 上 播放 Dukes 的《奋斗》 Siri:现在在你的 iPhone 上 播放《奋斗》 Alex:虽然 App 在前台运行 但音频也播放了 不过 App 进入后台后 比如 将手机锁屏 播放就会停止 它在运行 但不是 以你希望的方式进行 我们来看看 如果我改一下代码 以便正确配置 音频会话 会发生什么 嘿 Siri 在 Control Audio 上 播放 Dukes 的《奋斗》 Siri:现在在你的 iPhone 上 播放《奋斗》 Alex:就算我锁屏 音频也在继续播放 ♪ ♪ HomePod 和 iPhone 的功能很多 所以 音频播放 被来电、导航提示、Siri 请求 或其他 App 播放其他内容 打断的情况很常见 处理中断情况很重要 这样你的 App 才能继续播放 尤其是当房间里的人 在对 HomePod 说话 而 iPhone 又不在手边的时候 好了 我们再来了解一下隔空播放 为了让系统能成功地 播放 App 的内容 你需要确保做到以下几点: 正确地设置音频类别、模式 和路线分享共享策略 就像我之前说过的那样 使用 MPNowPlayingInfoCenter 向系统反馈当前播放的项目 使用 MPRemoteCommandCenter 来接收远程指令 比如:播放、暂停和跳过 这几个措施能让 App 的媒体文件 在隔空播放扬声器上播放 但是 由于音频数据 被传送到了另一台设备上 系统需要一个缓冲区 并积累一些数据 来确保音频的流畅播放 这样 每次恢复或停止媒体播放时 可能会产生延迟 使用其中一个 API 来缓冲播放 就可以解决这个问题 你可以观看今年的讲座 “提升你的隔空播放体验” 了解有关这个主题的更多信息 接下来 我将介绍一下 这个功能的其他注意事项 有好几部 iPhone 或 iPad 会怎么样? Siri 怎么知道要使用哪一部? 答案是 Siri 会把 SiriKit Media 请求 指定给主 iPhone 即把 Apple ID 下查找我的设置 设置为共享位置的 iPhone 由于 Siri 能与其他设备连接 来完成这些请求 因此 请求用户 需要在 Home 中注册 并启用识别我的声音功能 你可以在 Home App 中 找到这个设置 启用个人请求功能则不需要开启 请记住 如果你没有启用 “识别我的声音”功能 或者你没有在 Home 中注册 就不能播放 你或其他任何人设备上的媒体文件 如果你刚安装了 App 或者从没有 让 Siri 播放过 App 里的媒体 那首次使用 App 播放媒体文件的 请求会引导你访问你的 iOS 设备 并请求允许 Siri 访问你的 App 数据 只有在你首次请求使用 Siri 播放 App 内容时才需要申请这个权限 本讲座结束前 提醒你记住以下事项 添加 SiriKit Media 意图支持 是你的 App 在 HomePod 上 运行的必要条件 通过添加 Buffered Playback、 支持更复杂的查询、 给 Siri 提供更多语境 你可以进一步优化用户体验 感谢观看! 很期待看到你的 App 在 HomePod 上运行! ♪ ♪
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。