XML解析の実装
以下の関数を使用すると、XMLの解析をネイティブパーサーにオフロードできます。registerNativePlayerUtils()
ネイティブ解析を使用するには、アプリでネイティブ関数を登録する必要があります。registerNativePlayerUtils()関数はアプリを登録し、アプリからネイティブXMLパーサーを呼び出せるようにします。この関数は、現在のプラットフォームがネイティブ解析をサポートしていればtrueを返し、それ以外の場合はfalseを返します。
boolean isNativeXmlParserSupported(playerName: string, playerVersion: string)
playerName: プレーヤーの名前を指定します。サポートされている値は”shaka”です。playerVersion: プレーヤーのバージョン。Shaka Playerの場合、サポートされているバージョンは4.6.18または4.3.6です。
アプリでは、特定のプレーヤーとプレーヤーバージョンでXML解析のネイティブサポートが利用できるかどうかを確認する必要があります。
ネイティブXMLパーサーは現在、ShakaPlayerバージョン4.6.18と4.3.6を対象にサポートされています。
nativeParseFromString (manifest, expectedRoot)
ShakaPlayerでは次の引数を渡す必要があります。
manifest:ダウンロードされたマニフェストを格納するArrayBuffer。expectedRoot: 解析されたXMLで想定されるルート要素。
global.nativeParseFromString()は、XML解析のネイティブ実装を提供し、登録後にプレーヤーによって呼び出されます。
unloadNativeXmlParser()
unloadNativeXmlParser()関数は、ネイティブパーサーのキャッシュの読み込みを解除します。アプリでプレーヤーの使用が完了したときに呼び出します。通常、これはプレーヤーのunload()関数の一部として実行されます。
統合の変更
Shaka Player
ネイティブXMLパーサーは、Shaka Playerのバージョン4.6.18と4.3.6を対象にサポートされています。Shaka Playerに必要なすべてのパッチを適用し、それをアプリ内で使用する方法については、Shaka Playerを使用したアダプティブコンテンツ(HLS/DASH)の再生を参照してください。
XMLパーサーを正常に統合するには、次の点を確認する必要があります。
- Shaka PlayerのビルドにShaka-Player-changes-for-Dash-nativization.patchが適用されていることを確認します。これにより、XML解析関数を登録するフックが有効になります。
- ネイティブ化のリリースドロップの一部として、
DOMParserPolyfillというポリフィルの追加も行われています。DOMParserPolyfill.tsがアプリのポリフィルの一部として含まれていることを確認します。 - MiscPolyfill.tsファイルの更新されたリリースが、アプリのポリフィルの一部として含まれていることを確認します。このポリフィルは、基底の
DomParserオブジェクトへの依存を削除するように更新されています。
- ShakaPlayer v4.6.18: shaka-rel-v4.6.18-r2.11.tar.gz
- ShakaPlayer v4.3.6: shaka-rel-v4.3.6-r2.4.tar.gz
-
src/shakaplayer/ShakaPlayer.tsで、Shaka Playerの名前とバージョンがまだ定義されていない場合は定義します。
-
必要に応じて、ネイティブXML解析を有効または無効にするフラグを定義できます。たとえば、次のフラグは手順5でネイティブ解析を有効にするために使用されます。
-
DOMParserPolyfillをインポートしてインストールします。 -
nativeParseFromString()を呼び出します。 -
ShakaPlayer.tsファイルに
load()関数を追加して、ネイティブのXML解析に必要な機能が利用可能かどうかを確認します。すべてのチェックに成功したら、setNativeFunctions()を呼び出して、ShakaPlayerからnativeParseFromString()の実装をネイティブXMLパーサーに渡します。setNativeFunctions()は、引数として、XMLの解析中にShakaPlayerによって呼び出される関数を受け取ります。 -
ShakaPlayer.tsファイルに
unload()関数を追加して、ネイティブのXML解析が有効になっているかどうかを確認します。有効になっている場合は、unloadNativeXmlParserを呼び出してパーサーの読み込みを解除します。

