次の方法で共有


Media Detector の使用

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

[この API はサポートされていないため、今後変更または使用できない可能性があります。]

メディア検出機能は、ストリームの数、その種類、期間など、ファイルに関する情報を取得できるヘルパー オブジェクトです。 また、ビデオ ストリームからポスター フレームを取得するためのメソッドも含まれています。 IMediaDet インターフェイスが公開されます。

メディア検出器は、2つのモードのいずれかで動作します。 メディア検出機能のインスタンスを作成すると、特定のソース ファイルにアタッチされません。 このモードでは、複数のソース ファイルからストリーム情報を取得できます。 ただし、メディア検出機能を使用してポスター フレームを取得すると、 ビットマップ グラブ モードに切り替わります。 ビットマップ グラブ モードでは、メディア検出機能は特定のビデオ ストリームにアタッチされ、ストリーム情報メソッドは機能しなくなります。 さらに、メディア検出器を起動モードに戻す方法はありません。 そのため、ポスター フレームを取得する前に必要なストリーム情報を取得するか、ストリームごとにメディア検出機能の新しいインスタンスを作成します。

ストリーム情報を取得するには、次の操作を行います。

  1. ソース ファイルの名前 を使用して IMediaDet::p ut_Filename を呼び出します。
  2. IMediaDet::get_OutputStreams を呼び出して、ソース内のストリームの数を取得します。
  3. IMediaDet::p ut_CurrentStream でストリーム番号を指定します。 次に、次のメソッドの 1 つ以上を呼び出します。

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

ソースの操作