次の方法で共有


ユーザー割り当てサンプルのサポート

[このページに関連付けられている機能である Windows Media Format 11 SDK は、従来の機能です。 ソース リーダーシンク ライターに置き換わりました。 ソース リーダーシンク ライターは、Windows 10とWindows 11用に最適化されています。 Microsoft では、可能であれば、新しいコードで Windows Media Format 11 SDK ではなくソース リーダーシンク ライターを使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

通常の状況では、リーダー オブジェクトと同期リーダー オブジェクトの両方で、アプリケーションに配信されるサンプルごとに新しいバッファー オブジェクトが作成されます。 これは、読み取りオブジェクトがサンプルを取得した後にアプリケーションが何を行うかを知る方法がないためです。 多くのアプリケーションはサンプルをすぐにレンダリングするためにのみ読み取りますが、一部のアプリケーションでは長い間サンプルを維持する必要がある場合があります。 したがって、読み取りオブジェクトは、割り当てるバッファーを再利用できません。アプリケーションに配信され、アプリケーションを制御できます。

この方法の問題は、ファイルに膨大な数のサンプルを含めることができるということです。 それぞれに新しいバッファー オブジェクトを作成する必要がある場合、メモリの割り当てと解放に多くのプロセッサ時間が無駄になります。 メディア プレーヤーなどの時間の影響を受けるアプリケーションでは、このオーバーヘッドがパフォーマンスに非常に悪影響を与える可能性があります。

リーダー割り当てサンプルのパフォーマンスの問題を軽減するために、リーダーと同期リーダーの両方でユーザー割り当てサンプルがサポートされます。 アプリケーションによって割り当てられたサンプルを使用するために、読み取りオブジェクトは、実装するサンプル割り当てコールバック メソッドを呼び出します。 コールバックが読み取りオブジェクトにバッファーを配信するために使用するロジックは、完全にユーザーの設定です。 ファイル全体にバッファーのプールを使用することも、複数のバッファー プール、出力またはストリームごとに 1 つ、またはアプリケーションに適したその他のスキームを使用することもできます。

ファイル読み取り用のバッファーの割り当て

ファイル読み取り機能