次の方法で共有


メディア ディテクタの使い方

メディア ディテクタは、ストリームの個数、タイプ、時間幅など、ファイルに関する情報を取得するためのヘルパー オブジェクトである。メディア ディテクタには、ビデオ ストリームからポスター フレームを取得するメソッドも含まれている。これは、IMediaDet インターフェイスを公開する。

メディア ディテクタが機能するモードは 2 つある。メディア ディテクタのインスタンスを作成した時点では、特定のソース ファイルにはアタッチしていない。このモードでは、複数のソース ファイルからストリーム情報を取得できる。しかし、メディア ディテクタを使ってポスター フレームを取得すると、メディア ディテクタは "ビットマップ捕捉モード" に切り替わる。ビットマップ捕捉モードでは、メディア ディテクタは特定のビデオ ストリームにアタッチされ、ストリーム情報メソッドは機能しなくなる。また、メディア ディテクタを起動時のモードに戻す方法はない。そのため、必要なストリーム情報の取得はポスター フレームの取得の前に行う必要がある。そうでない場合は、ストリームごとにメディア ディテクタの新しいインスタンスを作成することになる。

ストリーム情報を取得する手順は以下のとおりである。

  1. IMediaDet::put_Filename を呼び出して、ソース ファイルの名前を指定する。
  2. IMediaDet::get_OutputStreams を呼び出して、ソース内のストリームの個数を取得する。
  3. IMediaDet::put_CurrentStream を呼び出して、ストリーム番号を指定する。以下のメソッドを 1 つ以上呼び出す。

ポスター フレームを取得するには、前の手順と同じようにしてストリーム番号を指定する。IMediaDet::GetBitmapBits を呼び出してポスター フレームをバッファにコピーするか、IMediaDet::WriteBitmapBits を呼び出してポスター フレームをファイルに保存する。