0
我正在通過Qt和libsndfile在C++中播放Portaudio中的wav文件。這工作得很好。我需要以低延遲播放聲音,所以我試圖優化我的代碼,以便文件的實際播放時間等於文件的理論持續時間。確定在Portaudio播放聲音時的確切時間
我注意到,我打電話Pa_StartStream(stream);
後聲音不會立即開始播放,但有一個小的延遲。我想知道聲音開始播放的準確時間,而不是以毫秒爲單位進行加載,因爲當時還有其他一些事情正在進行。
最顯而易見的方法是:
myTimer.start();
Pa_StartStream(stream);
但我認爲Portaudio會先調用我的回調函數,加載緩衝區,然後開始播放,這將我的無效測量的時間,對不對?
如何找出播放開始的準確時間?雖然我們在這,我怎麼能找到,當它結束了(我知道當我寫我的最後一個數據到緩衝區,但是當它被打,我不知道..)
感謝
謝謝M,這可以幫助我很多:) – jens108