适用于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”。
- ShakaPlayer版本“4.6.18”和“4.3.6”目前支持本机HLS解析器。
- Hls.js版本“1.5.11”目前支持本机HLS解析器。
步骤3:调用清单解析函数
global.parseHlsManifest函数实现了HLS清单解析。应用必须首先自行注册,然后调用解析函数。
- ShakaPlayer
- Hls.js
为了解析清单,调用
parseHlsManifest() 并传递以下参数:-
playerName:包含播放器名称“shaka”的字符串。 -
playerVersion:包含播放器版本的字符串:“4.6.18”或“4.3.6”。 -
absoluteUri:包含清单绝对URI的字符串。 -
manifest:包含已下载清单的ArrayBuffer。 -
shaka:仅适用于ShakaPlayer,传递Shaka对象,如下一部分所示。
集成变更
以下部分提供了有关前面步骤中展示的函数用法的其他详细信息。- ShakaPlayer
- Hls.js
Shaka播放器版本
4.6.18和4.3.6支持本机HLS解析器。有关在应用中使用Shaka播放器并应用所有必需补丁的信息,请参阅使用Shaka播放器播放自适应内容 (HLS/DASH)。注意: 在构建播放器之前,请确保Shaka播放器版本的tarball包含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中定义Shaka播放器版本。
-
您还可以定义标记以启用或禁用本机解析。例如,在步骤4中使用了以下标记来启用本机解析。
-
添加对
parseHlsManifest()的调用。 -
在加载Shaka播放器之前,要先注册
parseHlsManifest()函数的实现。setNativeFunctions()函数允许应用将实现传递给本地parseHlsManifest函数。它接受一个参数形式的函数,在HLS解析期间从Shaka播放器调用该参数形式的函数。这些集成更改也存在于ShakaPlayer.ts中,后者作为外部版本tarball的一部分提供,您可以将其用作参考。
支持的标记
Shaka播放器- ShakaPlayer v4.6.18:Shakaplayer版本v4.6.18支持所有标记。
- ShakaPlayer v4.3.6:Shakaplayer版本v4.3.6支持所有标记。
- 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
故障排除
-
集成更改后,如果观察到以下日志条目,则未启用本机化。要启用它,请设置本机化启用标记。有关设置标记的示例,请参阅ShakePlayer集成的步骤2。
hlsjs:本机播放列表解析已禁用 -
集成更改后,如果观察到以下日志条目,则未启用本机化。最可能的原因是Vega OS版本不兼容,以及没有必需的本机化更改。确保您使用的版本是
OS 1.1 (201010432050)或更高版本。hlsjs: native offload not enabled!

