Microsoft DirectX 8.0 (C++)

IDirectSoundBuffer8::Stop

サウンド バッファの再生を停止する。

HRESULT Stop();

パラメータ

なし。

戻り値

成功した場合は DS_OK を返す。

失敗した場合は、次のいずれかのエラー値を返す。

DSERR_INVALIDPARAM
DSERR_PRIOLEVELNEEDED

注意

セカンダリ サウンド バッファに対して IDirectSoundBuffer8::Stop を呼び出すと、再生カーソルが、直前に再生されたサンプルの直後のサンプルに設定される。これは、そのバッファに対して次に IDirectSoundBuffer8::Play メソッドを呼び出したときに、以前に再生を停止した場所から再生が再開されることを意味する。

DSSCL_WRITEPRIMARY レベルに設定されたアプリケーションがプライマリ サウンド バッファに対してこのメソッドを呼び出すと、このメソッドはバッファを停止し、再生カーソルを 0 (バッファの先頭) にリセットする。ほとんどのサウンド カードはバッファの先頭からのみ再生を行えるので、このような処理が必要である。

しかし、書き込み優先以外の協調レベルに設定されているアプリケーションが、プライマリ バッファに対して IDirectSoundBuffer8::Stop を呼び出した場合は、このメソッドは IDirectSoundBuffer8::Play とは逆のエフェクトをもたらすだけである。セカンダリ バッファが再生されていない場合は、プライマリ バッファを停止するように設定する。このアプリケーションまたはほかのアプリケーションがほかのバッファを再生している場合、それらの再生が停止するまでプライマリ バッファも実際には停止しない。たとえ振幅が 0 dB であっても、バッファがサウンド データを再生している場合は処理のオーバーヘッドが発生するので、このメソッドを使ってプライマリ バッファを停止することは役に立つ。

動作環境

  ヘッダー : dsound.h で宣言。

参照

IDirectSoundBuffer8::Play