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.jsバージョン”1.5.11”
手順3:マニフェスト解析関数を呼び出す
HLSマニフェストの解析はglobal.parseHlsManifest関数に実装されています。アプリでは、まず自身を登録してから解析関数を呼び出す必要があります。
- ShakaPlayer
- Hls.js
マニフェストを解析するには、
parseHlsManifest()を呼び出して以下のパラメーターを渡します。-
playerName:プレーヤー名を表す文字列。“shaka”を指定します。 -
playerVersion:プレーヤーのバージョンを表す文字列。“4.6.18”または”4.3.6”を指定します。 -
absoluteUri:マニフェストの絶対URIを表す文字列。 -
manifest:ダウンロードされたマニフェストを格納するArrayBuffer。 -
shaka:ShakaPlayerの場合のみ、次のセクションに示すようにShakaオブジェクトを渡します。
統合の変更
このセクションでは、前の手順で紹介した関数の使用方法について詳しく説明します。- ShakaPlayer
- Hls.js
ネイティブHLSパーサーは、Shaka Playerのバージョン
4.6.18と4.3.6を対象にサポートされています。Shaka Playerに必要なすべてのパッチを適用し、それをアプリ内で使用する方法については、Shaka Playerを使用したアダプティブコンテンツ(HLS/DASH)の再生を参照してください。注: プレーヤーをビルドする前に、Shaka Playerのリリース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 Playerのバージョンを定義します。
-
ネイティブ解析を有効または無効にするフラグを定義できます。例として、ネイティブ解析を有効にする手順4では次のフラグを使用します。
-
parseHlsManifest()の呼び出しを追加します。 -
Shaka Playerを読み込む前に、
parseHlsManifest()関数の実装を登録します。setNativeFunctions()関数を使用すると、アプリからネイティブのparseHlsManifest()関数に実装を渡すことができます。引数として、HLSの解析中にShaka Playerによって呼び出される関数を受け取ります。これらの統合の変更は、外部リリースtarballに含まれているShakaPlayer.tsにも実装されており、参考として使用できます。
サポートされるタグ
Shaka Player- ShakaPlayer v4.6.18:Shaka Playerバージョンv4.6.18では、すべてのタグがサポートされます。
- ShakaPlayer v4.3.6:Shaka Playerバージョン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
トラブルシューティング
-
変更の統合後、以下のログエントリが表示される場合、ネイティブ化は有効になっていません。有効にするには、ネイティブ化を有効にするフラグを設定します。フラグの設定の例については、Shaka Playerの統合の手順2を参照してください。
hlsjs: native playlist parsing is disabled -
変更の統合後、以下のログエントリが表示される場合、ネイティブ化は有効になっていません。最も考えられる原因として、Vega OSのリリースバージョンに互換性がなく、ネイティブ化に必要な変更が実装されていない可能性があります。使用しているバージョンが
OS 1.1 (201010432050)以降であることを確認してください。hlsjs: native offload not enabled!

