雖然我意識到AirPlay具有固有的延遲/延遲,但我想知道是否有方法讓(當前假設的)iPhone應用程序檢測延遲是什麼。如果是這樣,這個延遲值有多精確?我更加好奇一個應用是否可以「知道」自己的AirPlay延遲,而不是簡單地將其最小化。檢測AirPlay延遲
回答
簡短的回答是:不,Apple不提供這樣做的方法。假設你需要你的應用程序在App Store中獲得批准,那麼你有點不幸。如果您可以在越獄設備上運行您的應用程序,則可以搜索未公開的API,這樣可以讓您做更多事情。
如果您需要在蘋果應用程序商店中提供您的應用程序,則可以通過網絡進行操作的大部分功能都列在「可訪問性」示例應用程序中。
我能想到的唯一方法就是使用Bonjour來識別主機(請參閱示例代碼https://developer.apple.com/library/ios/#samplecode/BonjourWeb/Introduction/Intro.html),然後ping主機。
但是:
- 如果有多於1個的Airplay站你將需要猜測或詢問該用戶連接到,或可能採取的平均值。
- 設備可能不響應ping所有(蘋果電視和機場快線皆響應ping通,不知道第三方設備。)
- 的平可能沒有反映音頻的實際延遲
與其花太多時間在這,你應該遵循蘋果的指導方針爲您準備了AirPlay的音頻和豐富您的應用程序使用AirPlay播放:http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AirPlayGuide/PreparingYourMediaforAirPlay/PreparingYourMediaforAirPlay.html#//apple_ref/doc/uid/TP40011045-CH4-SW1
希望這有助於! :)
延遲不是來自網絡抖動,而是由源設備(您的iPhone)決定的。
長話短說:
- 它總是精確2S(精確到毫秒)與蘋果設備。
- 無法使用公共API對其進行調整。
音頻延遲需要非常準確,以便多個輸出可以同步播放。
有關的AirPlay的執行幾點說明:
- 協議與幾個RTSP開始命令。在這次握手過程中,信號源會傳輸
rtpTime
,即播放開始的時間,這也是您的延遲時間。典型值爲88200 = 2s×44100Hz。 - AirPlay設備可以通過NTP與其源時鐘同步其時鐘,以減輕網絡延遲。
- 在播放過程中,信號源會定期發送一個
SYNC
數據包來調整音頻延遲並確保所有設備仍保持同步。
如果使用自定義實現,可以更改延遲,但Apple通常會拒絕它們。
檢查此writeup欲知更多信息。您也可以閱讀unofficial protocol documentation。
謝謝你的鏈接Laurent。我一直在努力解決這個延遲問題,你的第二條評論很多。看起來Airplay上的AVPlayer沒有這種延遲,但有其他限制。 – amergin 2012-10-18 20:18:43
意想不到的參考!清除一些不必要的謎題,可以通過更多控制來實現更強大的功能。 – 2012-12-28 11:43:17
您可以通過-[AVAudioSession outputLatency]
查詢的iOS目前的硬件音頻延遲,
據爲outputLatency
文件:
使用的AirPlay的功能的設備爲您的音頻內容可能會導致一個2秒的延遲。檢查遊戲內容的延遲。
而且根據我的經驗,這個值開關輸出設備時,如改變:
- 音箱:〜10ms的
- 藍牙:〜100個+ MS
- 的AirPlay:2S
- 1. MediaRouter檢測中的延遲
- 2. 檢測延遲響應
- 3. 延遲測量
- 4. 玩笑反應測試:檢查延遲
- 5. Flink流 - 延遲和吞吐量檢測
- 6. 測量延遲8051
- 7. 網絡延遲測試儀
- 8. 延遲測試承諾
- 9. Laravel單元測試延遲
- 10. 檢測iOS AirPlay屏幕鏡像功能
- 11. 延遲約束檢查
- 12. 如何測量低延遲C++應用程序的延遲
- 13. 如何測量低延遲環境中的延遲?
- 14. Arduino到Unity3D延遲/延遲
- 15. 延遲jquery循環延遲
- 16. netem延遲不延遲
- 17. 延遲加載延遲
- 18. AJAX文件檢查 - 延遲檢查
- 19. 如何檢測一個字段是否會延遲?
- 20. 如何檢測延遲作業是否正在運行?
- 21. 從hGetContents中檢測延遲字符串中的I/O異常?
- 22. 的Rails:回形針延遲檢測時,工作完成後
- 23. 使用translate3d和jQuery延遲檢測碰撞
- 24. 人類可以檢測到的最小延遲是多少?
- 25. 如何延遲鼠標移動檢測30秒
- 26. 如何檢測觸摸事件的延遲? - ANDROID - Eclipse
- 27. 在Android上檢測或近似藍牙延遲(音頻播放)
- 28. Android檢測到實時錄製,MediaRecorder延遲
- 29. 檢測實體框架中的延遲加載
- 30. Angular 2:自定義ExceptionHandler更改檢測延遲
發送一個blip然後聽通過麥克風返回的聲音? – trapper 2012-04-03 17:07:37
我正在尋找揚聲器前延遲。信號通過網絡傳輸需要多長時間。等待揚聲器和聲音傳輸將增加額外的延遲,我不一定感興趣。謝謝! – 2012-04-03 19:11:56