2012-06-29 65 views
3

使用Core Audio可以播放亞毫秒延遲的聲音嗎?Core Audio中的亞毫秒延遲

我試過使用不同大小和數量的緩衝區的AudioQueues,我試過使用AudioUnits,但我一直無法得到低於30毫秒的延遲。

我正在使用示波器測量Arduino上的按鈕被按下和聲音離開音頻插孔時的時間。 Arduino通信從不會造成超過1 ms的延遲。

回答

2

否。對於亞毫秒延遲,不包括DAC延遲,音頻驅動程序需要以44.1k採樣率提取32個採樣或更少的緩衝區大小,該輸出音頻單元似乎不允許目前的硬件。音頻隊列運行在音頻單元之上,因此具有更高的延遲。

+0

我正在替換使用OS 9上的SndManager系統編寫的代碼,並且這個舊的OS 9代碼能夠實現比我在新Mac上更好的延遲時間。有什麼辦法可以複製這個嗎? – flutillie

+0

@flutillie,不,沒有。現在,根據硬件情況,你應該能夠遠遠低於30ms,但亞毫秒級的延遲是不可能的。 – Brad

+1

嗨布拉德,我設法解決我的問題。通過使用32字節緩衝區,我已經將延遲降低到足夠小的水平,而不是停止/啓動音頻單元,當我想要靜音時發送0。謝謝你的幫助。 – flutillie