IMediaControl::StopWhenReady メソッド (control.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
メソッドは StopWhenReady
フィルター グラフを一時停止し、フィルターでデータをキューに入れ、フィルター グラフを停止します。
構文
HRESULT StopWhenReady();
戻り値
HRESULT 値を返します。 使用可能な値は次のとおりです。
リターン コード | 説明 |
---|---|
|
成功しました。 |
|
メソッドが返されたとき、グラフは引き続き一時停止状態に移行していました。 |
注釈
このメソッドは、グラフが停止している間にフィルター グラフをシークする場合に便利です。 フィルター グラフが停止している限り、現在の位置の変更は、新しいフレームでビデオ ウィンドウを再描画しません。 そのため、 IMediaSeeking::SetPositions を呼び出しても、ビデオ ウィンドウは更新されません。 シーク操作の後にウィンドウを更新するには、 を呼び出します StopWhenReady
。 このメソッドは、グラフを一時停止状態に切り替え、一時停止操作が完了するのを待ってから、グラフを停止状態に戻します。 一時停止操作はグラフ内のデータをキューに入れ、ビデオ レンダラーが新しいフレームを受信して表示できるようにします。
このメソッドは非同期です。 一時停止が完了するまで、別のスレッドで待機します。 呼び出し元のスレッドはブロックしません。これにより、アプリケーションはユーザー入力に応答できます。 メソッドが戻ると、一時停止操作が完了する前でも、グラフの論理状態が停止します。 この時点で IMediaControl::GetState メソッドを呼び出すと、State_Stoppedが返されます。
一時停止操作が完了する前に、アプリケーションが別の状態変更コマンド (一時停止、実行、シークなど) を発行した場合、新しいコマンドは保留中の停止コマンドを取り消します。 一時停止操作は完了しますが、グラフは停止しません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | control.h (Dshow.h を含む) |
Library | Strmiids.lib |