Platform SDK: DirectX |
DirectSoundBuffer.Restore メソッドは、失われたサウンド バッファへのメモリ割り当てを復元する。
object.Restore()
失敗すればエラーが発生し、Err.Number に次のいずれかのエラー コードが設定される。
DSERR_BUFFERLOST |
DSERR_INVALIDCALL |
DSERR_PRIOLEVELNEEDED |
アプリケーションに入力フォーカスが置かれていないと、DirectSoundBuffer.Restore は成功しないことがある。たとえば、入力フォーカスが置かれているアプリケーションが DSSCL_WRITEPRIMARY (書き込み優先) 協調レベルに設定されている場合、ほかのどのアプリケーションもバッファを復元できない。
DirectSound がバッファ メモリを復元した後、有効なサウンド データを書き込み直す必要がある。DirectSound はメモリ自体を復元するが、メモリの内容は復元できない。
アプリケーションはバッファを指定して DirectSoundBuffer.WriteBuffer または DirectSoundBuffer.Play の各メソッドを呼び出すと、そのバッファが失われている場合に通知を受けられる。バッファが失われている場合は、これらのメソッドは DSERR_BUFFERLOST を返す。DirectSoundBuffer.GetStatus メソッドを使って、サウンド バッファのステータスの取得と DSBSTATUS_BUFFERLOST フラグのテストを行うこともできる。