1
我在使用QT的Phonon組件播放C++中的用戶交互聲音。經過很多測試後,我可以確認排隊的聲音只會在主線程返回主消息循環時纔開始播放。對於較長的處理代碼,這會在聲音播放中引入延遲。我需要找到一種避免這種延遲的方法。立即用QT聲音發音(不等待事件循環)
我試過在單獨的線程中做聲音,但聲音中的defect阻止在該線程中創建一些對象。因此一些信號總是卡在主線程中。
簡單快速返回到事件循環是不是有幾個原因的選項:
- 一些對象創建僅僅是緩慢的,不能加快或很容易做到在一個線程(如數據庫連接)
- 聲子使用多個信號,所以即使你很快返回其他信號/事件仍將塊/與聲子的信號
我只是希望涵蓋了完善的API最基本的使用情況的干擾:當用戶做某事時播放聲音ng(比如點擊一個按鈕)並立即播放該聲音。肯定必須在Phonon中以某種方式報道?
您可以嘗試在發出聲音播放後立即調用`QApplication :: processEvents` ... – smerlin 2010-12-08 14:33:27
點#2仍然意味着您無法通過調用processEvents來修復它 - 除非有人可以提供僅用於Phonon的濾波器事件/信號。 – 2010-12-08 14:39:58