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.设置,清除波形缓冲区
waveOutPrepareHeader
waveOutUnprepareHeader
8.向波形发送数据块
mmres = waveOutWrite(hwo,&wh,sizeof(WAVEHDR));
为查询函数如何使用最好的办法就是使用google code