as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持
跳转到主要内容
Shaka播放器、Hls.js和Bitmovin等媒体源扩展 (MSE) 播放器使用JavaScript执行CPU密集型任务。这些任务包括解析多个HLS媒体清单,这可能会影响应用的用户界面响应能力和流畅度。在播放直播TV时,如果清单文件较大且DVR窗口也很大,那么这种影响将非常明显。本文档介绍如何利用HLS播放列表解析器的本机实现来优化性能。 改为本机解析可以显著提高性能,但并非所有应用都需要切换到本机HLS解析器支持。这些优化对于处理用大型DVR窗口播放直播TV的应用有益,因为频繁刷新和解析大型清单会导致频繁的JS线程阻塞、按键事件和用户界面处理延迟。应用还可以使用此优化来改善视频启动延迟。

适用于Vega的React Native API

您可以使用以下函数将HLS清单解析工作卸载到本机层:

步骤1:启用本机解析

要启用本机解析,应用必须通过调用registerNativePlayerUtils() 来注册本机函数。如果设备支持本机函数,则调用返回true,否则返回false。该调用注册应用并启用对本机HLS解析器的调用。

步骤2:检查对HLS播放列表解析的本机支持是否可用

要检查特定播放器和播放器版本的HLS播放列表解析是否可使用本机支持,请调用isNativeHlsParserSupported() 并传递以下参数:
  • playerName:播放器的名称。支持的值为“shaka”和“hlsjs”。
  • playerVersion:播放器的版本。对于“shaka”为“4.6.18”或“4.3.6”。对于“hlsjs”为“1.5.11”。
支持本机HLS解析器的播放器版本:
  • ShakaPlayer版本“4.6.18”和“4.3.6”
  • Hls.js版本“1.5.11”

步骤3:调用清单解析函数

global.parseHlsManifest函数实现了HLS清单解析。应用必须首先自行注册,然后调用解析函数。
为了解析清单,调用parseHlsManifest() 并传递以下参数:
  • playerName:一个字符串,包含播放器名称“shaka”。
  • playerVersion:一个字符串,包含播放器版本:“4.6.18”或“4.3.6”。
  • absoluteUri:一个字符串,包含清单的绝对URI。
  • manifest:包含已下载清单的ArrayBuffer。
  • shaka:仅适用于ShakaPlayer,传递Shaka对象,如下一部分所示。
以下部分提供了有关这些参数的用法的其他详细信息。

集成变更

以下部分提供了有关前面步骤中展示的函数用法的其他详细信息。
Shaka播放器版本4.6.18和4.3.6支持本机HLS解析器。有关在应用中使用Shaka播放器并应用所有必需补丁的信息,请参阅使用Shaka播放器播放自适应内容 (HLS/DASH)。注意:​ 在构建播放器之前,请确保Shaka播放器发布版压缩包中包含Shaka-Player-optimizations.patch文件,并且您已经应用了该补丁。这使挂钩能够注册HLS解析函数。从以下版本开始的版本中包含此补丁:
  • ShakaPlayer v4.6.18: shaka-rel-v4.6.18-r2.9.tar.gz
  • ShakaPlayer v4.3.6: shaka-rel-v4.3.6-r2.2.tar.gz
要使用此功能,请在应用的src/shakaplayer/ShakaPlayer.ts文件中进行以下更改:
  1. 在src/shakaplayer/ShakaPlayer.ts中定义Shaka播放器版本。
  2. 您可以定义标记以启用或禁用本机解析。例如,在步骤4中使用以下标记启用本机解析。
  3. 添加对parseHlsManifest() 的调用。
  4. 在加载Shaka播放器之前,要先注册parseHlsManifest() 函数的实现。setNativeFunctions() 函数允许应用将实现传递给本机parseHlsManifest() 函数。它接受一个函数作为参数,Shaka播放器在HLS解析期间会调用这个函数。
    这些集成更改也存在于ShakaPlayer.ts中,后者作为外部发布版压缩包的一部分提供,您可以将其用作参考。

支持的标记

Shaka播放器
  • ShakaPlayer v4.6.18:Shaka播放器版本v4.6.18支持所有标记。
  • ShakaPlayer v4.3.6:Shaka播放器版本v4.3.6支持所有标记。
Hls.js播放器 以下列表包含支持的标记: 媒体播放列表
  • EXT_X_VERSION
  • EXT_X_TARGETDURATION
  • EXT_X_MEDIA_SEQUENCE
  • EXT_X_DISCONTINUITY_SEQUENCE
  • EXT_X_PLAYLIST_TYPE
  • EXT_X_ENDLIST
媒体片段
  • EXTINF
  • EXT_X_BYTERANGE
  • EXT_X_DISCONTINUITY
  • EXT_X_PROGRAM_DATE_TIME
  • EXT_X_KEY
  • EXT_X_MAP
有关这些标记的描述,请参阅RFC 8216(仅提供英文版)。

故障排除

  • 集成更改后,如果您观察到以下日志条目,则应用未启用本机化功能。要启用它,请设置本机化启用标记。有关设置标记的示例,请参阅“Shaka播放器集成”的步骤2。 hlsjs: native playlist parsing is disabled
  • 集成更改后,如果您观察到以下日志条目,则应用未启用本机化功能。最可能的原因是Vega OS版本不兼容,以及没有必需的本机化更改。确保您使用的版本是OS 1.1 (201010432050) 或更高版本。 hlsjs: native offload not enabled!

最后修改于 2026年10月27日