我想通過使用c/C++腳本從共同的觸發信號同步兩臺不同計算機上的音頻回放和錄製。預計的延遲不應超過1毫秒。在不同的計算機上同步回放和錄製
檢索信號然後啓動腳本並不是真正的問題,延遲非常微不足道(幾微秒)。目前,我被困在平均延遲(播放開始和記錄開始之間)約20ms,偏差非常重要(5到10ms)。 計算機正在Linux上運行,我正在使用aplay和arecord from alsa-utils(直接從使用system()命令的代碼開始)。
有人有一個好主意或經驗來減少或控制兩個音頻接口之間的延遲嗎?
在我看來,應該有一種方法來初始化接口(速率,輸出格式等),並且對於回放設備,將數據預加載到音頻緩衝器中,然後在接收到信號時開始播放。
謝謝
音頻同步是一件棘手的事情。可能你應該看看JACK,而不是直接搞亂alsa API。您絕對可以製作單個JACK輸出,這將在多臺電腦上同步輸出音頻。 –