WinAPI: waveInUnprepareHeader - 清除由 waveInPrepareHeader 完成的准备
生活随笔
收集整理的這篇文章主要介紹了
WinAPI: waveInUnprepareHeader - 清除由 waveInPrepareHeader 完成的准备
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
提示:設(shè)備寫滿緩沖區(qū)返回給程序后, 須調(diào)用此函數(shù);
釋放(GlobalFree)緩沖區(qū)前, 須調(diào)用此函數(shù);
取消一個尚未準(zhǔn)備的緩沖區(qū)將無效, 但函數(shù)返回 0
//聲明: waveInUnprepareHeader(hWaveIn: HWAVEIN; {設(shè)備句柄}lpWaveInHdr: PWaveHdr; {TWaveHdr 結(jié)構(gòu)的指針}uSize: UINT {TWaveHdr 結(jié)構(gòu)大小} ): MMRESULT; {成功返回 0; 可能的錯誤值見下:}MMSYSERR_INVALHANDLE = 5; {設(shè)備句柄無效} MMSYSERR_HANDLEBUSY = 12; {設(shè)備已被另一線程使用} WAVERR_STILLPLAYING = 33; {緩沖區(qū)還在隊列中}//TWaveHdr 是 wavehdr_tag 結(jié)構(gòu)的重定義 wavehdr_tag = recordlpData: PChar; {指向波形數(shù)據(jù)緩沖區(qū)}dwBufferLength: DWORD; {波形數(shù)據(jù)緩沖區(qū)的長度}dwBytesRecorded: DWORD; {若首部用于輸入, 指出緩沖區(qū)中的數(shù)據(jù)量}dwUser: DWORD; {指定用戶的32位數(shù)據(jù)}dwFlags: DWORD; {緩沖區(qū)標(biāo)志}dwLoops: DWORD; {循環(huán)播放次數(shù), 僅用于輸出緩沖區(qū)}lpNext: PWaveHdr; {保留}reserved: DWORD; {保留} end;//TWaveHdr 中的 dwFlags 的可選值: WHDR_DONE = $00000001; {設(shè)備已使用完緩沖區(qū), 并返回給程序} WHDR_PREPARED = $00000002; {waveInPrepareHeader 或 waveOutPrepareHeader 已將緩沖區(qū)準(zhǔn)備好} WHDR_BEGINLOOP = $00000004; {緩沖區(qū)是循環(huán)中的第一個緩沖區(qū), 僅用于輸出} WHDR_ENDLOOP = $00000008; {緩沖區(qū)是循環(huán)中的最后一個緩沖區(qū), 僅用于輸出} WHDR_INQUEUE = $00000010; { reserved for driver }//舉例:
轉(zhuǎn)載于:https://my.oschina.net/hermer/blog/319777
總結(jié)
以上是生活随笔為你收集整理的WinAPI: waveInUnprepareHeader - 清除由 waveInPrepareHeader 完成的准备的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何快速在Linux系统的硬盘上创建大文
- 下一篇: TColorToHex 与 HexToT