Platform SDK: DirectX |
セカンダリ バッファのパン、ボリューム、周波数を変更すると性能に影響する。サウンド出力が途切れることを防止するには、DirectSound ミキサーは 20ms から 100ms、またはそれ以上先行してミキシングを行わなければならない。コントロールを変更した場合は、ミキサーは先行ミキシング バッファをフラッシュ (消去) し、変更後のサウンドを使って再ミキシングを行わなければならない。
送信するコントロールの変更回数を最少にすることは良い考えである。IDirectSoundBuffer::SetVolume、IDirectSoundBuffer::SetPan、IDirectSoundBuffer::SetFrequency の各メソッドを使うルーチンの呼び出し回数を減らすよう努める。たとえば、アニメーションのフレームに同期して音を左スピーカから右スピーカへ動かすルーチンを使っている場合、SetPan メソッドを 1 フレームごとに 2 回でなく 1 回呼ぶことを試みる。
送信するコントロールの変更回数を最少にすることは良い考えである。DirectSoundBuffer.SetVolume、DirectSoundBuffer.SetPan、DirectSoundBuffer.SetFrequency の各メソッドを使うルーチンの呼び出し回数を減らすよう努める。たとえば、アニメーションのフレームに同期して音を左スピーカから右スピーカへ動かすルーチンを使っている場合、SetPan メソッドを 1 フレームごとに 2 回でなく 1 回呼ぶことを試みる。
注 : 3D コントロール (方向、位置、速度、ドップラー係数など) を変更した場合も、DirectSound ミキサーは先行ミキシング バッファを再ミキシングしなければならない。しかし、3D コントロールの変更をグループ化し、再ミキシングを 1 回に削減できる。「遅延設定」を参照すること。