Platform SDK: DirectX |
IDirectSoundBuffer::Stop メソッドは、サウンド バッファの再生を停止する。
HRESULT Stop();
なし。
成功すれば DS_OK、失敗すれば次のエラー値のいずれかを返す。
DSERR_INVALIDPARAM |
DSERR_PRIOLEVELNEEDED |
セカンダリ サウンド バッファに対して IDirectSoundBuffer::Stop を呼び出すと、現在のバッファの位置が、直前に再生されたサンプルの直後のサンプルに設定される。これは、そのバッファに対して次に IDirectSoundBuffer::Play メソッドを呼び出すと、以前に再生を停止した場所から再生が再開されることを意味する。
DSSCL_WRITEPRIMARY レベルに設定されたアプリケーションがプライマリ サウンド バッファに対してこのメソッドを呼び出すと、このメソッドはバッファを停止し、現在のポジションを 0 (バッファの先頭) にリセットする。ほとんどのサウンド カードはバッファの先頭からのみ再生を行えるので、このような処理が必要である。
しかし、書き込み優先以外の協調レベルに設定されているアプリケーションが、プライマリ バッファに対して IDirectSoundBuffer::Stop を呼び出した場合は、このメソッドは IDirectSoundBuffer::Play とは逆のエフェクトをもたらすだけである。セカンダリ バッファが再生されていない場合はプライマリ バッファを停止するように設定する。このアプリケーションまたは他のアプリケーションが他のバッファを再生している場合、それらの再生が停止するまでプライマリ バッファも実際には停止しない。たとえ振幅が 0 dB であっても、バッファがサウンド データを再生している場合は処理のオーバーヘッドが発生するので、このメソッドを使ってプライマリ バッファを停止することは役に立つ。
Windows NT/2000 : Service Pack 3 を適用した Windows NT バージョン 4.0 以降が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
ヘッダー : dsound.h で宣言。
インポート ライブラリ : dsound.lib を使用。