HLS On Shaka 播放器迁移

概览

Cast Web Receiver SDK 支持通过多个网页 流式传输协议。基于 协议时,SDK 会加载播放器来处理内容的播放。在 如果是 HLS 内容,则系统会加载媒体播放器库 (MPL)。如果 DASH 内容,Shaka Player 是 。

今后,Cast SDK 和 Shaka 播放器工程团队将 加强对 Shaka 上 HLS 内容播放的支持力度 播放器。MPL 将不会再收到重要更新。我们建议您 使用 Shaka Player 来播放应用的 HLS 内容。

Shaka Player 福利

在不断变化的玩家中,应用可以利用以下优势:

  • 缩短了加载时间,为用户提供了更强大的流式传输会话功能 包括故障和延迟时间
  • 继续采用最新的 HLS 功能。
  • 更清楚地分析针对玩家内容的根本原因 Shaka Player 的开源性质导致的兼容性问题。
  • 借助开源播放器代码库,合作伙伴可以 为 Shaka Player 项目贡献了力量
  • 可大幅缩短正式版的功能和 bug 修复时间,因为 Shaka Player 的新作发行 频率 且独立于 Web Receiver SDK 的版本。
  • 更好地控制播放环境(由 shakaVersion API。
  • 通过工程资源增加 Google 对播放的支持 侧重于在 Shaka Player 上播放 HLS 路线图

时间轴

Web Receiver SDK 将转换为使用 Shaka Player 作为默认播放器 。这将分阶段进行,以指导 帮助合作伙伴完成迁移过程

阶段 开始日期 概览
1 2022 年 10 月 Cast Web Receiver SDK 引入了可用于在 Shaka Player 上播放 HLS 内容的 API
2 2024 年下半年 Cast Web Receiver SDK 会将默认播放器更改为 Shaka Player,以便播放 HLS 内容。

Web Receiver SDK 工程团队正在采用性能驱动型方法 并且只有在 Shaka Player 的表演功能开启时才会进入下一阶段 与 MPL 的基准性能相当。这些变更会在 cast-sdk-announcements google group - 本指南。

选择启用

从 CAF 版本 3.0.0105 开始,有 选择启用配置以使用 Shaka Player 进行 HLS 播放。此版本 还引入了一个 API,可从支持的 Shaka Player 版本范围中进行选择 等待加载。这些标记在 CastReceiverOptions 类(通过 useShakaForHlsshakaVersion 属性,在 CastReceiverContext 启动。选择启用 Shaka for HLS 的任何应用 应将 Shaka Player 版本至少为 4.3.4 才能利用 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 或基本流
  • 内容不连续或带有嵌入式广告
  • 可在以下设备类型上播放:智能显示屏、Chromecast 加密狗 Android TV 设备、内置 Chromecast 的电视、智能音箱

如果您发现任何错误或意外行为,请提交 bug。 当您能够确认 将更改推送到生产环境。

选择停用

Web Receiver SDK 将转换为 Shaka Player HLS 停用模型 根据时间轴播放内容。属性 useShakaForHls 将更改其默认值 从 falsetrue。届时,应用可以针对 HLS 使用 MPL 可以手动将此属性设置为 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 能否解锁您的 问题。如果问题仍然存在,或者您遇到了 是切换玩家时遇到的一个问题

  1. 尝试将 shakaVersion 设置为 来解决问题。例如,如果问题 在 4.3 分支上经验丰富,请尝试在 4.2.x3.3.x 版本。检查 Shaka 播放器版本 笔记 更新最多的版本请注意, shakaVersion API 有最小值和最大值 支持的版本,详见参考文档。如果您观察到 如果出现回归问题,请在 Shaka 播放器 问题跟踪器
  2. 尝试更改播放器配置参数。Shaka Player 是 可通过 PlayerConfiguration 对象。网络 接收器 SDK 定义了一组默认值,使应用能够 通过 PlaybackConfig 中的 shakaConfig 属性 对象。这是在加载期间(当播放器实例 创建。查看此类别的更多结果

    应用配置和 选项。默认 由 Web Receiver SDK 设置的值是推荐值。

  3. 查看是否已在 Shaka 播放器问题跟踪器Cast 问题跟踪器请对 bug 发表评论并添加任何相关 信息(如果其中也描述了您的问题)。

  4. Shaka Player 演示网站上测试您的内容。如果您 如果您的内容在演示网站中重现了此问题,请提交 错误

  5. 如果您遇到以下情况,请在 Cast 问题跟踪器中提交错误 在投放端点上存在 Shaka Player 特有的问题。

常见问题解答

更换玩家可能会引发很多问题。以下是 解答常见问题,指导您完成迁移过程。

是否应该迁移到 Shaka Player?

我们建议使用 HLS 内容的合作伙伴开始迁移流程,因为 问题。因此,您的应用将提供更强大的流式传输功能。 打造卓越的用户体验。Shaka Player 中列出了更多福利 好处部分。合作伙伴应进行验证 使用 Shaka Player 确保应用能够正常运行,从而确保流畅 过渡效果。如果 Web 接收器 SDK 存在 转换为选择退出模式(如果合作伙伴未验证) 确保内容能够在 Shaka Player 上正常播放。

在更换玩家时,期望的投入程度如何?

合作伙伴需要在测试环境中测试他们的应用和内容 以确保用户体验与 HLS 相比类似或有所改善。 为此,合作伙伴需要选择启用该功能, 并全面测试其内容能否正常播放 使用 Shaka Player 播放。如需详细了解,请参阅验证内容 你应该重点关注内容的哪些方面验证完成后,合作伙伴需要 添加标志以在其生产应用环境中选择启用 充分利用 Shaka Player 提供的优势。概括来讲, 对于我们的 才能成功迁移

我的应用即将使用 HLS 流式传输内容,我该怎么办?

新的集成应选择使用 Shaka Player 进行播放。您的 则从长远来看,应用会得到更好的支持,而且还会 充分利用新的 HLS 功能和性能改进。如果您的新 集成出现问题,请尽快提交错误,以提供 以便解决问题。如果您的应用具有 截止日期非常紧迫,请在 bug 报告中提供相关信息,并说明问题的影响 以便相应地确定优先次序我们的工程小组将努力提供解决方案 为用户提供充分支持。

我的内容或应用无法使用 Shaka Player,接下来该怎么做?

您应该报告与 Shaka Player 项目或 Cast 项目相关的错误 (请参阅报告问题)。Cast SDK 工程团队正在积极参与 监控这些追踪器,并与您合作解决手头的任何问题。 越早检测到这些问题,解决问题所需的时间就越长 提供修复。

MPL 无法再收到重要更新,这到底意味着什么?

过去,MPL 一直采用新的 HLS 功能,并通过 重要更新由于 MPL 将不会再收到它们,因此新的 HLS 功能不会添加到播放器中。同样 MPL 上的播放在 MPL 中不会被修复。这些问题应该在 切换到 Shaka 播放器进行播放。如果问题仍然存在,则 bug 应该连同在 Shaka 上面临的相关问题一起提交 播放器。合作伙伴应停止使用 MPL。

我的内容使用流畅流式传输协议,这对我的应用有何影响?

MPL 二进制文件仍会托管,并可供您的接收器访问 应用。但是,任何 Smooth Streaming 相关功能请求和 bug 进行修复,因为 流畅流式传输规范在 。我们建议您迁移内容,以使用 DASH 或 HLS 继续接收性能更新和 您的内容。

我的内容未使用 HLS 或 Smooth Stream 协议,这对我的应用有何影响?

如果您的内容库没有使用上述任何一种流式传输协议, 您不会受到迁移的影响您无需对 应用。