TDDSDオブジェクトは、DirectSoundをカプセル化します
(凡例:
読み取り専用
Published)
| チャンネル | ChannelCount | |
| Channels | ||
| 3D | Listener | |
| Use3D | ||
| 設定 | StickyFocus | |
| その他 | DSound | |
| PrimaryBuffer | ||
| Initialized | ||
| DebugOption |
| 初期化 | ForceInitialize |
| 設定 | SetPrimaryBufferFormat |
property ChannelCount:DWORD default 8;
音声を再生するチャンネルの数です。
同時に再生できる効果音の数が決定されます。
property Channels[iCh:Integer]:TDDSDChannel default;
音を鳴らすためのチャンネルを表します。iChの範囲は0〜ChennelCount-1です。
デフォルト配列プロパティなので、記述を省略できます。
例
DDSD1というTDDSDオブジェクトがあるとします。
precedure DDSDSamp1; var Wave1:TDDSDWaveData; begin Wave1:=TDDSDWaveData.Create(DDSD1,'foo.wav'); //foo.wavからWave1というWaveDataを作る DDSD1.Channels[0].WaveData:=Wave1; //Ch#0にWave1を載せる DDSD1[0].Play; //再生する .Channels を書く事は省略可 end;
property Listener:TDDSDListener;
DirectSound3Dが想定する仮想空間での、リスナーの位置・向き・速度といった情報を設定,取得するためのオブジェクトです。
property Use3D:Boolean default False;
3D効果を使うかどうかを示します。
Trueならば3D効果を使います。
property StickyFocus:Boolean default True;
Trueならば、アプリケーションがフォーカスを失っても、効果音を鳴らし続けます。
Falseならば、アプリケーションにフォカスが無い場合は効果音を鳴らしません。
実行時にこのプロパティを変更することは出来ません。
property DSound:IDirectSound8 read FDSound;
DirectSoundオブジェクトを表します。このプロパティはDDSDコンポーネントでは出来ない事をする時のための、拡張用です。
詳しい使い方は、DirectSoundに関する資料を各自で調べてくださいm(__)m
property PrimaryBuffer:IDirectSoundBuffer;
DirectSoundの一次バッファを表します。このプロパティはDDSDコンポーネントでは出来ない事をする時のための、拡張用です。
詳しい使い方は、DirectSoundに関する資料を各自で調べてくださいm(__)m
property Initialized:Boolean;
DirectSoundが初期化できたかどうかを示します。
もしこのプロパティがFalseだった場合、コンポーネント初期化時にWaveデバイスが他のアプリケーションによって占有中だったか、あるいはサウンドカードが無い事が考えられます。
前者による理由でこのプロパティがFalseになった場合、適宜ForceInitializeメソッドを呼び、コンポーネントの再初期化を行ってください。
property DebugOption:TDDSDDebugOption; TDDSDDebugOption = Set of (dsoHaltOnError, dsoExceptOnError, dsoDebugMessage);
デバッグ用のメッセージ出力を制御します。
dsoHaltOnError
DirectXモジュールの制御上、何らかのエラーが発生すると、アプリケーションを強制終了します
dsoExceptOnError
DirectXモジュールの制御上、何らかのエラーが発生すると、例外を発生します
dsoDebugMessage
DirectXモジュールの制御上、何らかのエラーが発生すると、エラーの内容について、DDSD_DebugLog.txtというファイル名で、アプリケーションのあるディレクトリと同じディレクトリに書き出します。
function ForceInitialize:Boolean;
DDSDコンポーネントの再初期化を行います。これにはDirectSoundの初期化も含まれます。
DirectSoundの初期化が成功した場合はTrueが、失敗した場合にはFalseが返ります。
SetPrimaryBufferFotmat(freq, bps: DWord; isStereo: Boolean);
プライマリバッファのフォーマットを設定します。
freqで示されるサンプリング周波数(Hz単位)、bpsで示される量子化数(ビット単位)になり、isStereoにTrueを指定するとステレオ、Falseを指定するとモノラルになります。
波形データは全て、一旦プライマリバッファのフォーマットに変換されてからプライマリバッファに転送されて、その上で再生されるので、波形データの再生品質の上限が、このメソッドで決定されます。
例
プライマリバッファのフォーマットを、44100Hz、16ビット、ステレオに設定します DDSD1.SetPrimaryBufferFotmat(44100, 16, True); プライマリバッファのフォーマットを、22050Hz、8ビット、モノラルに設定します。 DDSD1.SetPrimaryBufferFotmat(22050, 8, False);