Platform SDK: DirectX

IDirectSoundBuffer::Stop

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 を使用。

参照

IDirectSoundBufferIDirectSoundBuffer::Play