IDirectSoundBuffer8::Stop
Stop メソッドは、サウンド バッファーの再生を停止します。
HRESULT
Stop(
);
パラメータ
なし。
戻り値
成功した場合は、DS_OK を返します。失敗した場合は、次のエラー値のいずれかを返します。
解説
セカンダリ サウンド バッファーの場合、IDirectSoundBuffer8::Stop を呼び出すと、最後に再生されたサンプルの直後のサンプルに再生カーソルが設定されます。これは、そのバッファーに対して次に Play メソッドが呼び出されたときには、以前に再生を停止した場所から再生が続行されることを意味します。
プライマリ バッファーの場合、アプリケーションが DSSCL_WRITEPRIMARY レベルに設定されているときにこのメソッドを呼び出すと、バッファーが停止し、再生カーソルは 0 (バッファーの先頭) にリセットされます。これが必要なのは、ほとんどのサウンド カードのプライマリ バッファーがバッファーの先頭からしか再生できないためです。
一方、プライマリ バッファーに対して IDirectSoundBuffer8::Stop が呼び出された場合、アプリケーションが DSSCL_WRITEPRIMARY 以外の協調レベルに設定されていると、このメソッドは IDirectSoundBuffer8::Play と逆のエフェクトをもたらすだけです。セカンダリ バッファーが再生されていない場合は、プライマリ バッファーを停止するように構成されます。そのアプリケーションまたは他のアプリケーションで他のバッファーを再生している場合は、それらの再生が停止するまでプライマリ バッファーも実際に停止することはありません。振幅が 0 dB であっても、バッファーがサウンド データを再生している場合は、プライマリ バッファーを再生することで処理のオーバーヘッドが発生するので、このメソッドは効果的です。
要件
ヘッダー: DSound.h 宣言
ライブラリ: Dsound3d.dll 内容