IMediaSeeking インターフェイス (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]
インターフェイスには IMediaSeeking
、ストリーム内の位置にシークし、再生速度を設定するためのメソッドが含まれています。 フィルター グラフ マネージャーは、このインターフェイスを公開し、個々のフィルターまたはピンも公開します。 アプリケーションでは、インターフェイスのフィルター グラフ マネージャーに対してクエリを実行する必要があります。
Filter Graph Manager は、グラフ内の各レンダラー フィルターに対して任意 IMediaSeeking
の呼び出しを配布します。 レンダラー フィルターは、呼び出しをアップストリームからソース フィルターに送信します。 この一連のイベントにより、すべてのストリームが確実に同期されます。 分散呼び出しのいずれかがエラーを返した場合、分散呼び出しの一部が成功した場合でも、Filter Graph Manager は受信した最初のエラー値を返します。 例外がE_NOTIMPL: 分散呼び出しがすべて返されない限り、フィルター グラフ マネージャーはE_NOTIMPLを返しません。
アプリケーションは、グラフが任意の状態 (実行中、一時停止、または停止中) の間にグラフをシークできます。 グラフが実行されている場合、フィルター グラフ マネージャーは seek コマンドを発行する前にグラフを一時停止します。 次に、グラフをもう一度実行します。 シーク操作はすべて、現在の再生速度とは無関係です。 操作をシークすると、保留中のメディア データがグラフからフラッシュされます。
時刻を指定するすべての IMediaSeeking
パラメーターについて、時間の単位は現在の時刻形式によって異なります。 時刻形式を設定するには、 IMediaSeeking::SetTimeFormat メソッドを 呼び出します。 時刻形式は、uuids.h で定義されているグローバル一意識別子 (GUID) です。 詳細については、「 時刻形式 GUID」を参照してください。
継承
IMediaSeeking インターフェイスは、IUnknown インターフェイスから継承されます。 IMediaSeeking には、次の種類のメンバーもあります。
メソッド
IMediaSeeking インターフェイスには、これらのメソッドがあります。
IMediaSeeking::CheckCapabilities CheckCapabilities メソッドは、ストリームでシーク機能が指定されているかどうかを照会します。 |
IMediaSeeking::ConvertTimeFormat ConvertTimeFormat メソッドは、ある時刻形式から別の時刻形式に変換します。 |
IMediaSeeking::GetAvailable GetAvailable メソッドは、シークが効率的な時間の範囲を取得します。 |
IMediaSeeking::GetCapabilities GetCapabilities メソッドは、ストリームのすべてのシーク機能を取得します。 |
IMediaSeeking::GetCurrentPosition GetCurrentPosition メソッドは、ストリームの合計継続時間を基準にして、現在位置を取得します。 |
IMediaSeeking::GetDuration GetDuration メソッドは、ストリームの期間を取得します。 |
IMediaSeeking::GetPositions GetPositions メソッドは、ストリームの合計継続時間を基準にして、現在の位置と停止位置を取得します。 |
IMediaSeeking::GetPreroll GetPreroll メソッドは、開始位置の前にキューに入れるデータの量を取得します。 |
IMediaSeeking::GetRate GetRate メソッドは、再生速度を取得します。 |
IMediaSeeking::GetStopPosition GetStopPosition メソッドは、ストリームの継続時間を基準にして、再生が停止する時刻を取得します。 |
IMediaSeeking::GetTimeFormat GetTimeFormat メソッドは、シーク操作で現在使用されている時刻形式を取得します。 |
IMediaSeeking::IsFormatSupported IsFormatSupported メソッドは、シーク操作で指定された時刻形式がサポートされているかどうかを判断します。 |
IMediaSeeking::IsUsingTimeFormat IsUsingTimeFormat メソッドは、シーク操作が指定された時刻形式を現在使用しているかどうかを判断します。 |
IMediaSeeking::QueryPreferredFormat QueryPreferredFormat メソッドは、シークに適した時刻形式を取得します。 |
IMediaSeeking::SetPositions SetPositions メソッドは、現在の位置と停止位置を設定します。 |
IMediaSeeking::SetRate SetRate メソッドは、再生速度を設定します。 |
IMediaSeeking::SetTimeFormat SetTimeFormat メソッドは、後続のシーク操作の時刻形式を設定します。 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | strmif.h (Dshow.h を含む) |