「视频」如何通过 Siri 播放视频?且看优酷技术接入实践
文章图片
文章图片
作者 | 阿里文娱高级无线开发工程师 子荀
责编 | 屠敏
随着 iOS 13 的正式发布 , SiriKit 开始支持音视频内容播放 。例如 , 用户说“Hey Siri , 使用优酷播放《乡村爱情12》” , 优酷会自动打开并播放《乡村爱情12》 。这是一次新功能的探索和尝试 , 优酷主客开始相应的技术预研 。
这篇文章是对优酷接入 SiriKit 的总结 , 介绍了整个项目的实施流程和经验教训 。随着 iOS 13 的占比越来越高 , 相信 Siri 的相关功能也会被音视频类的 App 接入 。希望我们的心得分享能帮助到大家 。
SiriKit 概述
文章图片
文章图片
SiriKit 将用户对 Siri 的请求分发到对应的 App 中 。SiriKit 包含了 Intents和 IntentsUI 框架 。它们都是应用程序的拓展 , 可以拓展 App 的自定义功能和内容 。Intents:用户可以发出的请求类型 , 它被转换为应用程序的操作 。类型包含INPlayMediaIntent、INSearchForMessagesIntent、INStartWorkoutIntent 等 。IntentsUI:在 Siri 中显示自定义的内容 , 这个拓展是可选的 。
了解完 Intents 和 Intents UI 后 , 还需要了解 Domains (域) 。Domains:将 Intent 分组 , 只有用户的请求在特定的域中才可以被支持 , 包含 Messaging、Workouts、Media等 。优酷使用的是 Media 域 。
注意:SiriKit 会忽略在 MacOS 上运行的 iPad App 。
优酷接入 SiriKit的流程
1. 在 Sign & Capabilities 中添加 Siri 权限 。
文章图片
文章图片
2. 创建 App Extension 。因为我们要通过 Siri 直接唤醒优酷 , 所以创建 Intents Extension 即可 , 无需创建 Intents UI Extension 。
文章图片
文章图片
3. 在创建完 App Extension 之后 , 需要对它进行一些设置:Bundle Identifier:Xcode 自动生成 , 无需改动;Target:Target 版本设置 。笔者的 Xcode 版本为11.2.1 创建的App Extension Target 默认版本为13.2 , 但是优酷需要从 13.0 开始支持 。这个地方一开始没有注意到 , 导致在 iOS 13.2 以下的系统中无法通过 Siri 唤起优酷;Supported Intents:在 Class Name 中添加类 INPlayMediaIntent 之后会自动出现 Media Categories 选项 , 该选项包含了 Music、Podcasts、Audiobooks、Radio、General 。因为优酷为视频类 App , 根据苹果官方的建议选择的类型为 General , 即通用类型;
文章图片
文章图片
4. 创建完 Siri Extension 之后 , 会在项目工程中自动生成一个 Siri 分组 , 默认文件为 IntentHandler.h 和IntentHandler.m 。分组为创建的 App Extension 名称 。
5. 在IntentHandler.m 处理相关逻辑 。这里直接贴上主要代码并对代码做些讲解:
- ( void)resolveMediaItemsForPlayMedia:(INPlayMediaIntent *)intent withCompletion:( void(^)( NSArray *resolutionResults))completion
{
// 描述媒体内容
推荐阅读
- 平台■在线视频平台大数据杀熟成惯例 买VIP就活该被宰?
- 『智八斗』就这么被苹果欺负?余承东如何反击
- 「博主」百万美食博主拍出稳定高质量的 vlog,竟只用了一款 5G 视频手机?
- 『』华为P40中招,这款神将仅一个月跳千元?1亿像素+8K视频+骁龙865
- Ubuntu ■如何在 Ubuntu 中添加多个时区 | Linux 中国
- 「腾讯」腾讯视频盈利难:2019年亏损30亿 盗墓题材连拍五年没水花
- 「便利店」便利仔便利店,如何看待真实的便利店市场?
- 「事情」史海峰:万字长文剖析技术人如何成长
- 「视频」视频错误标注“作品由华为手机拍摄”,华为致歉
- 『像素』荣耀潮流情报局:揭秘荣耀30系列预热视频背后的故事