有關DirectSoundFullDuplexCreate8的問題

    有關DirectSoundFullDuplexCreate8的問題
 
    在WINXP平臺我使用操作系統的AEC和NS,用DirectSoundFullDuplexCreate8來初始化對象。但在一臺筆記本上發現在調用DirectSoundFullDuplexCreate8這個API時會需要幾分鐘時間,可能是軟件衝突,對音頻採集播放設備的佔用衝突,也有可能這個buffer被其它程序LOCK住了。我試着換用DSSCL_PRIORITY, DSSCL_NORMAL, DSSCL_EXCLUSIVE參數和其它參數都不行。只有在DirectSoundFullDuplexCreate8去掉AEC和NS功能纔可以。


     仔細觀察這檯筆記本的軟件環境,並在另一臺機器上搭建同樣的平臺但問題不能重現。折騰了一整天,也沒結果,真是令人沮喪,MSDN也沒說明有這種情況,不知網上有那位大俠能給個解釋。這個API要麼返回錯誤,要麼返回正常,什麼能那它堵住幾分鐘呢!!!!     


     解決方法只有啓線程來調用DirectSoundFullDuplexCreate8,檢測到超時後去掉AEC和NS再初始化。這樣來保證主線程不會堵死。
    
     WINXP的AEC和NS真是個好東西,但使用時也要小心,因爲WINDOW的軟硬件環境太複雜了。軟件在某臺機器功能正常不代表所有機器都能正常運行。
    
     這個問題WINDOW7就能很好解決,因爲它提供的接口更高層更安全,並且AEC和NS的較果更好,WIN7在媒體處理上還提供的更多更強大的功能,做開發的人才能真感到WIN7相比WINDOWS以前版本的好處。真是外行看熱鬧,內行看門道。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章