我有以下情況。在一臺機器上有一個Fritz ISDN卡。有一個過程負責播放該設備波形中的某個波形文件(ISDN連接在啓動時進行並持續)。該方案是容易的,只要所需要的過程中,先前打開波設備(無需一切當然任何問題初始化)的調用waveOutWrite()
和一個回調函數等待MM_WOM_DONE
味精知道播放已經完成。播放波形文件立即結束(C++,Windows)
因爲幾天然而(在過程和機器中都沒有改變),MM_WOM_DONE
消息在調用waveOutWrite()
後立即發出,即使該波持續幾秒鐘。再次沒有錯誤報告,它看起來像文件播放,但長度爲零(事實並非如此)。我也確信waveOutReset()
沒有被我的進程調用(它也會觸發發送提到的消息)。過去我已經習慣了一些奇怪的問題,只需重新安裝TAPI驅動程序即可解決問題。這次由於某種原因,我再次執行這個操作會產生問題,我正在嘗試更多的分析方法:)。任何可能導致這種行爲的建議?也許在ISDN線的另一端?
http://blogs.msdn.com/larryosterman/archive/2009/02/19/playsound-xxx-snd-memory-snd-async-is-almost-always-a-bad-idea.aspx – 2010-04-13 00:42:34