TDDSDCaptureオブジェクトは、DirectSoundCaptureの機能を利用して、マイクやライン・インなどの、音声入力デバイスからの入力を取り扱うためのオブジェクトです。
(凡例:
読み取り専用
Published)
| 情報 | |
| その他 | |
| コンストラクタ | Create |
| 録音 | Start |
| StartLoop | |
| 録音停止 | Stop |
| 設定 | IsSupportedFormat |
| SetupCaptureBuffer | |
| 転送 | BlockCopy |
| 初期化 | OnRecording |
property Length:Integer;
録音用のバッファのサイズを、バイト単位で返します。
コンストラクタである、Createメソッドに渡した引数によって決定されます。
property Position:DWord;
現在録音の終了した、バッファ上のオフセットをバイト単位で示します。
このプロパティで示されるオフセットより前の領域ならば、BlockCopyメソッドで読み取っても安全です。
property Status:DWord;
現在の録音についての状態を、以下のDWord値の和で返します。
property Buffer:IDirectSoundCaptureBuffer8;
TDDSDCaptureオブジェクトのカプセル化する、IDirectSoundCaptureBuffer8オブジェクトを示します。
詳細はDirectX SDKを参照してください。
property DSCapture:IDirectSoundCapture8;
TDDSDCaptureオブジェクトのカプセル化する、DirectSoundCaptureオブジェクトを示します。
詳細はDirectX SDKを参照してください。
constructor Create(Owner:TObject);
コンストラクタです。
録音に必要なIDirectSoundCapture8オブジェクトを生成します。
このメソッドを読んだ後に、SetupCaptureBufferメソッドを呼ぶ事で、初期化が完了します。
rocedure Start(wait:Boolean);
録音用バッファの先頭から終端までを一度埋める間だけ、録音を行います。
waitフラグがTrueの時、録音する間、処理を中断します。
Falseの時は、録音の終了を待たずに処理を続行します。その際は、Statusプロパティを参照して、録音の終了を知ることが出来ます。
procedure StartLoop;
Stopメソッドを呼ぶまで、バッファの先頭から録音を続けます。
バッファの終端まで録音を終えると、またバッファの先頭から録音を続けます。
バッファの先頭、またはバッファの中間(Lengthプロパティの半分のオフセット)まで録音を行った時点で、OnRecordingイベントを呼びます。
procedure Stop;
Startまたは、StartLoopメソッドによって開始された録音を、中断します。
function IsSupportedFormat(freq,bps:DWord; isStereo:Boolean):Boolean;
サンプリング周波数 freq[Hz]、ビットレート bps [ビット] の録音をサポートしているか、チェックします。
サポートしている場合、Trueを返します。
例
量子化数(ビットレート)16ビット、サンプリング周波数44100Hzで、モノラルでの録音をサポートしているか、チェックします。
capture.IsSupportedFormat(44100, 16, False);
procedure SetupCaptureBuffer(freq,bps:DWord; isStereo:Boolean; length:DWord);
録音に必要なIDirectSoundCaptureBufferオブジェクトを確保します。
引数の意味は以下の通りです。
環境によっては全てのサンプリング周波数、ビットレートをサポートしているわけではないので、必ずIsSupportedFormatメソッドで、使いたいバッファフォーマットをサポートしているか、チェックしてください。
例
量子化数(ビットレート)16ビット、サンプリング周波数44100Hzで、モノラルの録音をするためのTDDSDCaptureオブジェクトを生成します。バッファサイズはちょうど10秒録音できるようなサイズだとします。
capture.SetupCaptureBuffer(DDSD1, 44100, 16, False, 44100*2*10);
procedure BlockCopy(offset:DWord; dest:Pointer; length:DWord);
録音済みのバッファの offset で示されるオフセット(バイト単位、0がバッファの先頭)から、length バイトを、destで示されるメモリ領域にコピーします。
property OnRecording:TDDSDRecordingEvent; TDDSDRecordingEvent = procedure (Sender:TDDSDCapture; StartOffset,bufferSize:DWord) of object;
TDDSDCaptureオブジェクトは、バッファの先頭、またはバッファの中間(Lengthプロパティの半分のオフセット)まで録音を行った時点で、このイベントを呼びます。
引数の意味は以下の通りです。