1. 使用低級音頻函數 WaveX : 緩存
http://blog.csdn.net/kvw3000/article/details/68468 數據結構
控制着不一樣的音頻設備, 包括 wave, midi 和輔助音頻設備. 低級服務包括: 函數
(1) 查詢音頻設備.
(2) 打開和關閉設備驅動程序.
(3) 分配和準備音頻數據塊. ?waveSetBuffer()
(4) 管理音頻數據塊.
(5) 應用 MMTIME 結構.
(6) 處理錯誤. 性能
使用了 Windows 的消息映射, 在音頻事件會發送有關消息. .net
(1) MM_WOM_CLOSE 輸出設備關閉
(2) MM_WOM_DONE 輸出緩存播放完畢.
(3) MM_WOM_OPEN 設備被打開
(4) MOM_CLOSE MIDI 設備關閉.
(5) WOM_DONE
(6) WOM_OPEN blog
相關數據結構: 事件
1) 波形數據格式 WAVEFORMAT/EX
2) 波形數據緩衝區格式 WAVEHDR
3) 音頻輸出設備性能 WAVEOUTCAPS get
定義在 mmsystem.h 中. it
讀取 wave 文件的大體流程: io
1. mmioOpen() 打開文件.
2. mmioDescend('WAVE') 進入 ... 塊
3. mmioRead() 讀取信息
4. mmioAscend() 跳出 ... 塊
... 進入 data 塊, 讀取, 跳出 ...data
最後. mmioClose() 關閉
輸出 wav 文件:
waveOutOpen() 打開. waveOutPrepareHeader() 準備數據頭 waveOutWrite() 寫入數據並播放 waveOutReset() ... 等略.