- XMLHttpRequest(XHR)オブジェクトをFetch APIに置き換えます。
- Fetch APIではReadableStreamインターフェイスを使用せず、非同期で全体を読み取ります。
- ドキュメントオブジェクトモデル(DOM)の依存関係を回避します。
- 必要に応じてポリフィルを実装します。
Shaka Player
Shaka PlayerをVegaで動作させるには、プレーヤーに以下の変更を加えます。-
W3CMediaのMedia Source APIのポリフィルを設定します。
例:
-
DOMParserの代わりにXMLDOM npmパッケージを使用し、フェッチのためのウィンドウを指定します。
navigator.userAgentの変更例: -
Documentオブジェクトをポリフィルで変更します。Video RNコンポーネントの作成と破棄に伴って、
global.gvideoが設定またはクリアされます。 例: -
xml_util.jsで、Nodeインターフェイスを無効にします。 例:
Dash.jsプレーヤー
dash.jsプレーヤーをVegaで動作させるには、プレーヤーに以下の変更を加えます。-
dash.jsのモジュールをインポートする前に、次の初期化を実行します。 -
HTTPLoader.jsのチェック処理で、XMLHTTPRequestの代わりにフェッチを使用するように変更します。コード内のいくつかのチェック処理により、XMLHTTPRequestが使用されることになりますが、これはセグメントをダウンロードできません(0バイトのセグメントがダウンロードされます)。 例:
HLS.jsプレーヤー
HLS.jsプレーヤーをVegaで動作させるには、プレーヤーに以下の変更を加えます。- Shaka Playerのフォークに適用するものと同じポリフィルクラスを、HLS.jsプレーヤーに適用します。
location.href、DOMExceptionクラス、HTMLVideoElementクラスのポリフィルを設定します。hls.jsのfetch-loaderプラグインを有効にします。- fetch-loaderプラグインで、
onProgressコールバックを無効にします(fetch.ReadableStreamはサポートされません)。 - progressive構成を無効にします(
fetch.ReadableStreamはサポートされません)。 - 字幕構成をすべて無効にします(CUE APIはサポートされません)。
SourceBuffer.appendBufferメソッドにパッチを適用して、Uint8Arrayを受け入れるように変更します。- ワーカーを無効にします(ウェブワーカー(バックグラウンドプロセス)はサポートされません)。

