中用低級音頻函數播放聲音物業
桑切斯的傳中被阿隆索攔截。佩佩反擊中直傳被阿比達爾攔截。梅西反越位成功卻錯過皮球。第45分鐘 Windows通過高級音頻函數、媒體控制接口MCI設備驅動程序;低級音頻函數MIDI Mapper、低級音頻設備驅動;以及DirectSound提供了音頻服務,可以從聲卡獲取音頻流。
1. 播放聲音文件的其它方法
在介紹wavex系列之前,我先來介紹之外的其它幾種方法:
1.1 MCI方法簡介
用MCI方法是很方便的,它對媒體設備控制主要通過命令接口函數mciSendCommand()或者字符串接口函數mciSendString()來完成的,這兩個函數的作用相同。命令接口函數比命令字符串使用起來要復雜,但它為MCI提供了更為強大的控制能力,兩個接口函數的原型:
MCIERROR mciSendCommand(MCIDEVICEID IDDevice,UINT uMsg,DWORD fdwCommand,DWORD dwParam);
MCIERROR mciSendString(LPCTSTR lpszCommand, LPTSTR lpszReturnString, UINT cchReturn, HANDLE hwndCallback);
比如要使用mciSendCommand方法,我們先在MCI_OPEN_PARMS中設置要播放的文件并發送MCI_OPEN命令打開聲音設備,發送MCI_PLAY命令消息播放,結束后發送MCI_STOP命令關閉設備。關于它們的具體使用方法可以參考MSDN。
1.2 PlaySound方法
BOOL sndPlaySound(LPCSTR lpszSound, UINT fuSound );
BOOL PlaySound(LPCSTR pszSound,HMODULE hmod, DWORD fdwSound);
其中參數lpszSound是需要播放聲音的.WAV文件的路徑和文件名,hmod在這里為NULL,fuSound是播放聲音的標志,詳細說明請參考VC++中的幫助。 例如播放C:\\sound\\v可以用sndPlaySound (\"c:\\\\sound\\\\v\",SND_ASYNC);或PlaySound(\"c:\\\\sound\\\\v\",NULL, SND_ASYNC|SND_NODEFAULT );如果沒有找到v文件,第一種格式將播放系統默認的聲音,第二種格式不會播放系統默認的聲音[1],這是SND_NODEFAULT標志的作用。
當然我們也可以將聲音文件作為用戶自定義資源加入程序資源文件中,經過編譯連接生成EXE文件,這樣就可以實現無.WAV文件的聲音播放。利用上面的函數也很簡單,如下,其中IDR_YOUR_WAVE是加入的wave文件資源標識符:
PlaySound(MAKEINTRESOURCE(IDR_YOUR_WAVE),GetModuleHandle(NULL), SND_RESOURCE);
太原治療男科不孕不育費用達霏欣米諾地爾搽劑說明書
漳州治療白癜風的醫院