WinAPI:waveOutWrite-出力装置にデータブロックを送信
1210 ワード
ヒント:データバッファをwaveOutWriteに渡す前に、waveOutPrepareHeaderを使用してバッファを準備する必要があります.
waveOutPause関数を呼び出すデバイスを一時停止すると、初めてデバイスにデータブロックが送信されたときに再生が開始する.
waveOutPause関数を呼び出すデバイスを一時停止すると、初めてデバイスにデータブロックが送信されたときに再生が開始する.
// :
waveOutWrite(
hWaveOut: HWAVEOUT; { }
lpWaveOutHdr: PWaveHdr; {TWaveHdr }
uSize: UINT {TWaveHdr }
): MMRESULT; { 0; :}
MMSYSERR_INVALHANDLE = 5; { }
MMSYSERR_HANDLEBUSY = 12; { }
WAVERR_UNPREPARED = 34; { }
//TWaveHdr wavehdr_tag
wavehdr_tag = record
lpData: PChar; { }
dwBufferLength: DWORD; { }
dwBytesRecorded: DWORD; { , }
dwUser: DWORD; { 32 }
dwFlags: DWORD; { }
dwLoops: DWORD; { , }
lpNext: PWaveHdr; { }
reserved: DWORD; { }
end;
//TWaveHdr dwFlags :
WHDR_DONE = $00000001; { , }
WHDR_PREPARED = $00000002; {waveInPrepareHeader waveOutPrepareHeader }
WHDR_BEGINLOOP = $00000004; { , }
WHDR_ENDLOOP = $00000008; { , }
WHDR_INQUEUE = $00000010; { reserved for driver }
// :