簡體   English   中英

iOS - 在設備之間同步音頻,精確度為毫秒

[英]iOS - synching audio between devices with millisecond accuracy

我需要以毫秒精度同步網絡設備中的音頻。 我已經將一些非常有效的東西整合在一起,但它並不完全可靠:

1)服務器設備發送帶有timeSinceClick參數的rpc

2)客戶端設備根據rpc在傳輸中花費的時間啟動相同的點擊偏移,

3)System.Diagnostics.StopWatch定期檢查所有連接的設備,以確保播放沒有偏離絕對時間太多,並在必要時進行糾正

還有更優雅的方法嗎? 此外,我的方式需要手動同步,如果非iOS設備添加到混合:延遲分歧使自動化很難...

我都是眼睛!

干杯,

Gregzo

很難在同一台機器上以毫秒精度同步多個設備,因此如果你能夠在多台機器上執行此操作,我會說你做得很好。 我對iOS所描述的步驟不夠熟悉,但我可以告訴你我將如何以跨平台的方式處理這個問題。 也許你的方法是相同的。

  1. 一台機器(“主機”)將向所有其他機器發送UDP數據包。
  2. 所有其他機器都會盡快回復。
  3. 接收回復所花費的時間除以2將是(大約)從一台機器到另一台機器所需的時間。 (這必須經過驗證。處理和發送數據包可能需要更長的時間嗎?可能不會)
  4. 重復步驟1-3后,忽略任何極值並平均剩余結果,您就知道從一台機器到另一台機器的消息需要多長時間。
  5. 現在,“同步”UDP數據包可以從主機發送到“從”機器。 同步數據包將包括延遲信息,以便當保存機器接收數據包時,他們知道它們是在x毫秒前發送的。 如果網絡延遲或丟棄其中一些,可能需要發送幾個同步數據包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM