必要に応じて、コンテンツの保存と分類を行います。トンネリングを使用すると、圧縮動画データをハードウェア動画デコーダ経由で直接ディスプレイにトンネリングできます。コードで処理する必要はありません。タイムスタンプを次のいずれかのタイプの内部クロックと比較して、ディスプレイに送信する動画フレームとそれらを送信するタイミングを決定します。上の従来の動画再生はそれをアプリに通知します。インスタンスを取得します。実装に応じて動画をより効率的にレンダリングできます。タイミングの間の潜在的なずれによって生じるタイミングの問題を回避して、より正確な動画ケイデンスと、選択したクロック(PCR、STC、またはオーディオ)への同期を提供できます。効果(ぼかしや角丸など)のサポートの質が低下することもあります。スタックをバイパスするためです。次の図は、トンネリングによって動画再生プロセスがどのように簡素化されるかを示しています。デベロッパーは再生を実装するためのライブラリを統合しているので、多くの場合、実装ではトンネリング再生用にそのライブラリを再構成するだけで済みます。トンネリング動画プレーヤーの低レベルの実装では、次の手順を使用します。インスタンスを作成します。インスタンスを作成します。インスタンスを作成します。インスタンスを作成します。インスタンスを取得します。インスタンスを作成します。スニペットに示します。再生に関連付けられるため、トンネリング動画再生の動作は音声再生の動作によって異なります。ほとんどのデバイスの場合、デフォルトでは、音声の再生が開始されるまで動画フレームはレンダリングされません。場合によっては、アプリは音声の再生を開始する前に動画フレームをレンダリングする必要があります。シーク中に動画の現在位置をユーザーに表示する場合です。フレームでなければなりません。デバイスの動作を決定します。渡されず、バッファが空である場合は(音声アンダーラン)、音声クロックが進まなくなるため、もっと音声データが書き込まれるまで動画の再生が滞ります。タイムスタンプに表示される場合があります。実装に応じて)動画フレームをドロップするか無音の音声フレームを挿入して正のギャップを修正します。フレーム位置は増加しません。トンネリング動画再生をサポートするには、動画デコーダを別途作成する必要があります。ファイルでアドバタイズする必要があります。内部的に関連付けます。持つ出力ストリームに渡されます。作成時に出力ストリームに渡されます。この処理は再生スレッドが行います。コンポーネントに渡されます。ストリームに関連付けることができます。ハンドルを返す必要があります。レイヤとして構成されます。クロックに同期された)新しい画像バッファをコーデック出力から受け取り、このバッファを他のレイヤの現在のコンテンツと合成して、生成された画像を表示します。この処理は、通常の準備と設定のサイクルとは独立して行われます。レイヤのプロパティ(位置やサイズなど)が変更された場合にのみ行われます。コンポーネントは以下をサポートする必要があります。拡張パラメータを設定する。パラメータを構成する。このパラメータは、音声の再生が開始されたかどうかにかかわらず、最初にデコードされた動画フレームをレンダリングするかどうかをコーデックに指示します。トンネルモードを構成します。メンバーを介してそれを戻す必要があります。設定する必要があります。トンネリング再生をサポートします。コンポーネントは以下をサポートする必要があります。