as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持
跳转到主要内容
以下步骤介绍如何将Shaka播放器用于MSE模式,以播放自适应流媒体内容。 尽管亚马逊提供的Shaka播放器补丁针对的是特定版本的播放器,但您可以将它们移植到想使用的任何版本的Shaka播放器。不需要使用特定版本的Shaka播放器。您可以决定哪个版本的Shaka播放器适合您的要求。有关Shaka播放器处理您内容的能力的问题,请洽询开源社区。 有关Shaka播放器及其支持的不同配置的更多详细信息,请参阅Shaka播放器。

先决条件

在开始修改代码以在Shaka播放器上播放自适应内容之前,请先满足以下先决条件以设置您的应用和播放器:
  • 将您的应用设置成使用W3C媒体播放器。有关更多信息,请参阅媒体播放器设置。
  • 查看Shaka播放器文档,了解完整的依赖项清单。
  • 添加以下内容进行更新,以启用Shaka播放器:
    • 在您的应用文件夹中打开package.json。在dependencies部分中,纳入以下依赖项。

配置适用于Vega的Shaka播放器。

  1. 将适用于Vega的Shaka播放器下载到已知位置。 Vega支持以下Shaka播放器版本。有关每个版本包含的内容的信息,请参阅发布说明:
    • 有关源版本包含的内容的信息,请阅读4.16.13发布说明(仅提供英文版)
      • 4.16.13-r1.2-已将弃用的xmldom迁移到@xmldom/xmldom。
      • 4.16.13-r1.1-更新setup.sh以使用python3,修复原生曲目集成,添加MPEG1视频mime,并处理没有编解码器信息的mime类型。
    • 有关源版本包含的内容的信息,请阅读4.8.5发布说明(仅提供英文版)
      • 4.8.5-r1.7-已将弃用的xmldom迁移到@xmldom/xmldom。
      • 4.8.5-r1.6-更新setup.sh以使用python3,修复原生曲目集成,添加MPEG1视频mime,并处理没有编解码器信息的mime类型。
      • 4.8.5-r1.3-修复了某些编解码器切换用例中与播放失败相关的错误,并修复了拖动和码率切换操作涉及的AV同步问题。
      • 4.8.5-r1.2 - 在多个播放场景中优化了性能和稳定性。在媒体处理方面进行了优化,避免对相同MIME类型进行不必要的MediaSource重置操作。修复了清单更新无限延迟的问题。在HLS字幕中,当存在X-TIMESTAMP-MAP但缺少不连续标记时,提升了时间同步精度。新增密钥系统访问克隆功能,让DRM的功能变得更稳健。将npm包的命名空间更新为@amazon-devices。
    • 4.6.18 发布说明
      • 4.6.18-r2.16 - 修复了某些编解码器切换用例中与播放失败相关的错误。
      • 4.6.18-r2.15 - 在多个播放场景中优化了性能和稳定性。在媒体处理方面进行了优化,避免对相同MIME类型进行不必要的MediaSource重置操作。修复了清单更新无限延迟的问题,并修复了DASH原生化过程中的若干错误。
    • 4.3.6 发布说明
      • 4.3.6-r2.5 - 更新了polyfill以支持Headless JS播放。将导入路径从@amzn/react-native-w3cmedia更改为@amazon-devices/react-native-w3cmedia/dist/headless。将npm包的命名空间更新为@amazon-devices。
  2. 解压Shaka播放器程序包。 例如: shaka-rel-v4.16.13-r1.1-devices_scope.tar.gz
  3. 导航到/shaka-rel/scripts目录。
  4. 运行setup.sh帮助程序脚本。 ./setup.sh
这个setup.sh脚本会执行编译,在脚本目录中生成一个名为shaka-player的文件夹。如果存在任何编译问题,请参阅Shaka播放器编译故障排除,以获取可能的解决方案。
  1. 从生成的shaka-player目录中,将shaka-rel/src/*目录中的内容复制到<应用根目录>/src/*。
  2. 从生成的shaka-player目录中,将dist文件夹复制到<应用根目录>/src/shakaplayer目录中。

播放自适应内容

完成以下步骤,在安装视频组件后加载Shaka播放器。

使用Shaka播放器播放自适应内容

  • 打开src/App.tsx并用以下代码替换内容。
要构建应用,请在设备或模拟器上运行应用,然后收集日志,最后运行以下命令。 npm run build:app 有关在模拟器上构建和运行应用的更多详细信息,请参阅创建Vega应用和Vega虚拟设备。
  • 如果需要在应用中针对包含MPEGTS内容的HLS自适应流媒体启用序列模式,请将manifest.hls.sequenceMode设置为true,如以下示例所示。
借助此函数,可以针对HLS流媒体使用序列模式。序列模式支持与片段时间戳无关的相邻片段播放。当媒体片段时间戳混乱且可能导致媒体管道停顿时,该模式很有用。

要手动集成Shaka播放器,请执行以下操作。

  1. 从https://github.com/shaka-project/shaka-player克隆Shaka程序包。
  2. 基于您正在使用的Shaka播放器版本拉取相应的git分支,并创建名为v<x.y.z>-kepler的本地分支。将x.y.z替换为要拉取的版本的主要、次要和补丁版本号。
  3. 将与您正在使用的Shaka播放器版本相匹配的Vega Shaka播放器程序包下载到已知位置,您会在此展开该文件。
  4. 展开文件。 例如: tar -xzf shaka-rel-v4.6.18-r2.12.tar.gz
  5. 应用Shaka补丁。
  6. 通过运行build/all.py来构建Shaka播放器。

Shaka播放器编译故障排除

未找到glibc的错误

如果收到以下错误,请按以下示例所示设置节点16.20.2。
设置nvm 16.20.2

发生ESLint错误

确保没有父目录存在.eslintrc.js文件。

编译未完成

编辑package-lock.json文件并将字符串“git+ssh”的所有实例替换为“https”。

相关主题


最后修改于 2026年10月26日