非同期フィルターのサンプル
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
説明
非同期フィルターのサンプルは、プログレッシブ ダウンロードをサポートするファイル リーダー フィルターです。 このサンプル フィルターは、 IAsyncReader インターフェイスと IFileSourceFilter インターフェイスを 実装します。 MPEG ファイルはサポートされますが、AVI ファイルはサポートされていません。
使用方法
このサンプルには、フィルターを示す小さなコマンドライン アプリケーションMemfile.exeが含まれています。 コマンド ライン引数では、メディア ファイルとビット レートを 1 秒あたりキロバイト単位で指定します。 アプリケーションは、指定されたレートでファイルをメモリに読み取り、ファイルを再生します。 これを行うには、フィルターのインスタンスを作成し、フィルター グラフにフィルターを追加して、フィルターの出力ピンをレンダリングします。
コマンド ラインで、次のコマンドを入力します。
Memfile Filename BitRate
Async サンプル フィルターは AVI スプリッター フィルターに接続できないため、AVI ファイルをサポートしていません。 Async フィルターの出力ピンは、メディアの種類にMEDIATYPE_StreamとMEDIASUBTYPE_NULLを提案します。 AVI スプリッター フィルターの入力ピンは、MEDIASUBTYPE_NULLを受け付けず、独自の種類を提案しません。 そのため、ピン接続は失敗します。 必要に応じて、非同期フィルターを拡張してMEDIASUBTYPE_Aviを提供できます。 たとえば、ファイル形式を調べたり、ファイル拡張子を使用したりできます。
サンプルのダウンロード
DirectShow SDK サンプルをダウンロードするには、最新バージョンの Windows SDK をインストールします。
このサンプルは、[SDK Root]\Samples\Multimedia\DirectShow\Filters\Async のパスの下にインストールされます。
関連トピック