虽然我意识到AirPlay存在固有的滞后/延迟,但我想知道是否有一种方法(目前假设的) iPhone应用程序可以检测该延迟是什么。如果是这样的话,这个延迟值能有多精确?我更好奇的是,一个应用程序是否能够“知道”它自己的AirPlay延迟,而不是简单地最小化它。
发布于 2012-08-06 22:39:17
延迟不是来自网络抖动,而是由源设备(您的iPhone)决定的。
长话短说:
,
音频延迟需要非常准确,以便多个输出可以同步播放。
对AirPlay实施的几点解释:
rtpTime,即回放开始的时间,这也是您的延迟。典型值为88200 = 2s x 44100 Hz,SYNC的回放,源定期发送SYNC数据包以调整音频延迟,并确保所有设备仍保持同步。如果使用自定义实现,可以更改延迟,但Apple通常会拒绝它们。
有关更多信息,请查看此writeup。您还可以阅读unofficial protocol documentation。
发布于 2012-06-27 04:10:21
简单的回答是:不,苹果并没有提供一种方法来做到这一点。假设你需要你的应用程序在应用商店获得批准,你就有点倒霉了。如果你可以在一个破门而入的设备上运行你的应用程序,你可以到处搜索没有文档的API,这样你就可以做更多的事情了。
如果你需要你的应用程序可以在苹果的应用商店中使用,你可以在网络上做的大多数事情都在"Reachability“示例应用中概述。
我唯一能猜到的方法是使用Bonjour来识别主机(参见这里的示例代码https://developer.apple.com/library/ios/#samplecode/BonjourWeb/Introduction/Intro.html),然后对主机进行ping。
然而:
的实际延迟。
不要花太多时间在这上面,你应该遵循苹果为AirPlay准备音频和为AirPlay:http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AirPlayGuide/PreparingYourMediaforAirPlay/PreparingYourMediaforAirPlay.html#//apple_ref/doc/uid/TP40011045-CH4-SW1丰富应用程序的指导方针
希望这会有帮助!)
发布于 2018-02-27 11:04:28
您可以通过-[AVAudioSession outputLatency]查询iOS当前的硬件音频延迟,
根据outputLatency的文档
对于您的音频内容,使用启用
设备的AirPlay可能会导致2秒的延迟.检查游戏内容中的延迟。
根据我的经验,这个值在开关输出装置时会发生变化,例如:
~10ms
https://stackoverflow.com/questions/9997882
复制相似问题