概览
Cast Web Receiver SDK 支持使用多种 网络 流式传输协议 播放内容。该 SDK 会根据所使用的协议加载播放器来处理内容的播放。对于 HLS 内容,系统会加载媒体播放器库 (MPL )。对于 DASH 内容,Shaka Player 会 加载。
接下来,Cast SDK 和 Shaka Player 工程团队将整合资源,以增加对 Shaka Player 上 HLS 内容播放的支持。MPL 将不再接收关键更新 。我们建议您选择使用 Shaka Player 来播放应用的 HLS 内容。
Shaka Player 的优势
在更改播放器时,应用可以享受以下优势:
- 为用户提供更可靠的流式传输会话 ,并改进加载时间失败和延迟问题。
- 持续采用最新的 HLS 功能。
- 由于 Shaka Player 的开源特性,提高了对播放器内容兼容性问题的根本原因分析的清晰度 。
- 开源 播放器代码库允许合作伙伴 为 Shaka Player 项目做出贡献。
- 显著缩短了功能和 bug 修复从开发到生产的时间,因为 Shaka Player 的发布 节奏频繁 且独立于 Web Receiver SDK 的发布。
- 对播放环境的更大控制权 由
shakaVersionAPI 提供。 - Google 增加了对播放的支持,工程资源 专注于 Shaka Player 上的 HLS 播放,如 路线图所示。
时间轴
Web Receiver SDK 将过渡为使用 Shaka Player 作为 HLS 内容播放的默认播放器。我们将分阶段完成此过渡,以引导合作伙伴完成迁移过程。
| 阶段 | 开始日期 | 概览 |
|---|---|---|
| 1 | 2022 年 10 月 | Cast Web Receiver SDK 推出了选择启用 API ,以便在 Shaka Player 上播放 HLS 内容。 |
| 2 | 2026 年 5 月 18 日 | Cast Web Receiver SDK 将默认播放器更改为 Shaka Player ,用于播放 HLS 内容。 |
Web Receiver SDK 工程团队采用以性能为导向的方法,只有在 Shaka Player 的性能与 MPL 的基准性能相当时,才会进入下一阶段。这些更改将在 cast-sdk-announcements Google 群组中公布,并在此指南中更新。
选择启用
从 CAF 版本 3.0.0105 开始,有一个应用级配置可用于选择启用 Shaka Player 来播放 HLS 内容。此版本还引入了一个 API,用于从受支持的 Shaka Player 版本范围内进行选择以加载。这些标志通过
useShakaForHls和
shakaVersion属性在
CastReceiverOptions类中提供,并在
the CastReceiverContext启动时进行评估。任何选择启用 Shaka Player 来播放 HLS 内容的应用都应设置至少为 4.15.55 的 Shaka Player 版本,以利用最新的 HLS 改进。如需选择启用,请按照以下代码段操作:
const context = cast.framework.CastReceiverContext.getInstance();
let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = true;
context.start(castReceiverOptions);
验证内容
合作伙伴应先在 Shaka Player 上验证其内容播放,然后再选择在其生产应用中使用 Shaka Player。我们建议您针对以下列出的每种内容变体进行测试:
- 数据流类型:直播或点播
- 容器格式:TS、MP4 或基本数据流
- 包含中断或嵌入式广告的内容
- 在以下设备类型上播放:智能显示屏、Google Cast 加密狗、Android TV 设备、支持 Google Cast 的电视、智能音箱
如果您发现任何错误或意外行为,请提交 bug。 验证您的内容中没有严重的播放失败后,将更改推送到生产环境。
选择停用
Web Receiver SDK 将根据 时间轴 过渡到 Shaka Player HLS
内容播放的选择停用模式。The property
useShakaForHls 的默认值
将从 false 更改为 true。届时,应用可以选择使用 MPL 来播放 HLS 内容,只需手动将此属性设置为 false 即可。当 CastReceiverContext 启动时,Web Receiver SDK 将恢复为加载 MPL 而不是 Shaka Player。如需了解如何选择停用,请参阅以下示例:
const context = cast.framework.CastReceiverContext.getInstance();
let castReceiverOptions = new cast.framework.CastReceiverOptions();
castReceiverOptions.useShakaForHls = false;
context.start(castReceiverOptions);
报告问题
我们鼓励合作伙伴提交在播放 HLS 内容时发现的任何问题。如前所述,MPL 将不再接收关键更新。如果 MPL 遇到任何 问题,请按照指南“选择启用 ”部分中的步骤操作,验证切换到 Shaka Player 是否可以解决您的 问题。如果问题仍然存在,或者您在切换播放器时遇到其他问题,请按照以下步骤操作。
- 尝试将
shakaVersion设置为 不同的分支版本以解决问题。例如,如果在4.15分支上遇到问题,请尝试将其设置为另一个分支中的最新版本。查看 Shaka Player 版本 说明,找到 包含最相关更新的版本。请注意,shakaVersionAPI 具有最低和最高 受支持版本,如参考文档中所述。如果您发现存在回归问题,请在 Shaka Player 问题跟踪器中报告该问题。 - 尝试更改播放器配置参数。Shaka Player 可通过
PlayerConfiguration对象进行配置。Web Receiver SDK 定义了一组默认值,并允许应用通过shakaConfig属性修改此配置,该属性位于PlaybackConfig对象中。系统会在创建播放器实例时加载并评估此配置。如需了解详情,请参阅应用配置和 选项。Web Receiver SDK 设置的默认值是建议值。 - 查看 Shaka Player 问题跟踪器 或 Cast 问题跟踪器中是否已报告该问题。如果该问题跟踪器中描述的问题与您的问题相同,请对该 bug 发表评论并添加任何相关信息。
- 在 Shaka Player 演示网站上测试您的内容。如果您 发现该问题在演示网站上重现,请向 Shaka Player 项目提交 bug。
- 在 Cast 问题跟踪器中提交 bug 如果您 在 Cast 端点上遇到 Shaka Player 特有的问题。
常见问题解答
更改播放器可能会引发许多问题。下面列出了最常见的问题及解答,以帮助您完成迁移过程。
我是否应迁移到 Shaka Player?
我们鼓励使用 HLS 内容的合作伙伴尽快开始迁移过程。这样,您的应用将为用户提供更可靠的流式传输体验。如需了解更多优势,请参阅本指南的 Shaka Player 优势 部分。合作伙伴应验证其应用在使用 Shaka Player 时是否正常运行,以确保顺利过渡。如果合作伙伴未提前验证其内容在 Shaka Player 上是否正常播放,则某些应用可能会在 Web Receiver SDK 过渡到选择停用模式时面临风险。
更改播放器时,预计需要付出多少精力?
合作伙伴需要在测试环境中测试其应用和内容,以确保与 HLS 相比,用户体验相似或有所提升。 为此,合作伙伴需要在内部环境中选择启用该功能,并彻底测试其内容是否能够使用 Shaka Player 播放。如需详细了解要重点关注的内容方面,请参阅验证内容。验证后,合作伙伴需要在其生产应用环境中添加选择启用标志,以开始享受 Shaka Player 提供的优势。从总体上看,合作伙伴只需进行极少的软件开发更改,并且主要满足质量保证要求,即可成功迁移。
我的应用即将使用 HLS 来流式传输内容,我该怎么做?
新的集成应选择启用 Shaka Player 进行播放。从长远来看,您的应用将获得更好的支持,并且还将利用新的 HLS 功能和性能改进。如果您的新集成遇到问题,请尽快提交 bug,以便工程团队有足够的时间解决问题。如果您的应用有严格的截止日期,请在 bug 报告中包含该信息以及影响,以便我们相应地确定优先级。我们的工程团队将努力提供解决方案,以充分支持您的用户。
我的内容或应用无法与 Shaka Player 搭配使用,现在该怎么办?
您应向 Shaka Player 项目或 Cast 项目提交 bug (请参阅报告问题)。Cast SDK 工程团队会积极监控这些跟踪器,并与您合作解决当前遇到的任何问题。 越早发现这些问题,他们就有更多的时间来提供修复方案。
MPL 不再接收关键更新,这到底意味着什么?
过去,MPL 通过关键更新采用了新的 HLS 功能并修补了主要 bug。现在 MPL 将不再接收这些更新,因此不会向播放器添加新的 HLS 功能。同样,MPL 上 HLS 播放的任何报告问题都不会在 MPL 中修复。这些问题应通过切换到 Shaka Player 进行播放来解决。如果问题仍然存在,则应针对 Shaka Player 上遇到的相关问题提交 bug。合作伙伴应停止使用 MPL。
我的内容使用 Smooth Streaming 协议,这对我的应用有何影响?
MPL 二进制文件仍将托管并可供您的接收器应用访问。但是,由于 Smooth Streaming 规范已超过四年未更新,因此任何与 Smooth Streaming 相关的功能请求和 bug 修复都不会受到支持。我们建议您迁移内容以使用 DASH 或 HLS 流式传输协议,以便继续接收性能更新并获得内容支持。
我的内容不使用 HLS 或 Smooth Stream 协议,这对我的应用有何影响?
如果您的内容库未使用这两种流式传输协议中的任何一种,则您不会受到迁移的影响。您的应用无需进行任何更改。