非同期リーダーを使用してメディア サンプルを取得するには

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

IWMStatusCallback::OnStatus の実装でWMT_OPENEDステータス メッセージを受信したら、IWMReader::Start を呼び出してサンプルの受信を開始できます。 非同期リーダーは、 IWMReaderCallback::OnSample の実装にサンプルを提供します。 サンプルはプレゼンテーション時の順序で配信されます。

Start は非同期呼び出しです。 ほぼすぐに返され、別々のスレッドで実行され続けます。 非同期リーダーは、コンテンツをデコードしてサンプルを配信するときに、複数のスレッドを使用します。 ファイルの末尾に達すると、リーダーは onStatus コールバックの実装にWMT_EOFステータス メッセージを送信します。 WMT_EOFが送信されると、リーダーは独自の処理を停止します。 IWMReader::Stop の呼び出しでWMT_EOFに応答する必要はありません。

IWMReader インターフェイス

OnStatus コールバックでリーダー メッセージを実装するには

OnSample コールバックを実装するには