1.獲取錯誤 wavOutGetErrorText
static const char * mmerror(MMRESULT mmrError)
{
static char mmbuffer[1024];
int len;
sprintf(mmbuffer,"mm:%d ",(int)mmrError);
len = (int)strlen(mmbuffer);
waveOutGetErrorText(mmrError, mmbuffer+len, sizeof(mmbuffer)-len);
mmbuffer[sizeof(mmbuffer)-1] = 0;
return mmbuffer;
}
2.
檢取系統中存在的波形輸出設備的數量int wavmax = waveOutGetNumDevs();
3.
查詢一個指定的波形輸出設備以確定其性能
MMRESULT mmres = waveOutGetDevCaps(i, &caps, sizeof(caps));
if(mmres == MMSYSERR_NOERROR)
{
}
使用winmm播放音頻的例子具體可以參考:libhao具體請google.
4.
打開一個波形輸出設備
MMRESULT mmres;
mmres = waveOutOpen(&hwo,id,&wavefmt.Format,(DWORD_PTR)0,(DWORD_PTR)device,CALLBACK_NULL|WAVE_ALLOWSYNC);
if(mmres == MMSYSERR_NOERROR)
{
}
else
{
}
5.獲取波形輸出設備的標識符
MMSYSERR_NOERROR == waveOutGetID(hwo,&id)
6.關閉波形輸出設備
waveOutClose(hwo)
7.設置,清除波形緩沖區(qū)
waveOutPrepareHeader
waveOutUnprepareHeader
8.向波形發(fā)送數據塊
mmres = waveOutWrite(hwo,&wh,sizeof(WAVEHDR));
為查詢函數如何使用最好的辦法就是使用google code