マルチメディア ストリーム オブジェクトとストリーム サンプルの作成
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
注意
これらの API は非推奨です。 アプリケーションでは、 サンプル グラバー フィルターを使用するか、カスタム フィルターを実装して DirectShow フィルター グラフからデータを取得する必要があります。
IMultiMediaStream インターフェイスをサポートするオブジェクトは、マルチメディア データ ストリームの基本的なコンテナーです。 IMultiMediaStream インターフェイスには、オブジェクトのデータ ストリームを列挙するメソッドが含まれています。これらのストリームは通常、ビデオおよびオーディオ データですが、クローズド キャプション、プレーン テキスト、SMPTE タイムコードなど、任意の形式のデータを含めることができます。 ただし、IMultiMediaStream インターフェイスは汎用コンテナーです。開発者は、特定のデータ形式をサポートするインターフェイスの他のバージョンを作成できます。 たとえば、 IAMMultiMediaStream インターフェイスを実装するオブジェクトは、任意の DirectShow データ形式のストリームを列挙および制御できます。 個々のデータ ストリームは形式固有であるため、少なくとも 2 つの異なるインターフェイス (1 つのジェネリックと 1 つのデータ固有) をサポートします。 すべてのストリームは IMediaStream インターフェイスをサポートしています。このインターフェイスは、その形式とストリーム自体へのポインターを取得するメソッドを提供します。 一方、 IDirectDrawMediaStream インターフェイスには、特にビデオ データのレンダリングを処理するメソッドがあります。 IMultiMediaStream から派生したインターフェイスでは、ストリーミング データの基本的な単位であるストリーム サンプルの作成もサポートされます。
マルチメディア サンプルは、メディア データを含むオブジェクトへの参照です。 ビデオ イメージの場合、これは DirectDraw サーフェスです。 サンプルの正確な内容は、メディアの種類 (サウンド、テキストなど) によって異なります。 サンプルはデータ オブジェクトへの参照のみであるため、任意の数のストリーム サンプルが同じオブジェクトを参照できます。 IStreamSample インターフェイスには、開始時刻と停止時間、状態、ストリームの関連付けなど、サンプルの特性を取得および設定するメソッドが用意されています。 IStreamSample::Update メソッドは、読み取り可能なストリームの場合にサンプルのデータを更新します。 書き込み可能なストリームの場合、サンプルのデータがストリームに書き込まれます。 通常は、ストリーミング データをレンダリング、転送、または格納するループで Update メソッドを使用します。
関連トピック