跨设备建立同步音乐流
Posted
技术标签:
【中文标题】跨设备建立同步音乐流【英文标题】:Establishing synchronized music streaming across devices 【发布时间】:2014-10-04 22:58:49 【问题描述】:我正在尝试将音频文件从服务器流式传输到 ios 设备并完全同步播放。例如,在我的手机上,我可能会听一首歌 20 秒,然后我旁边的朋友也应该听这首歌 20 秒。我知道这不是一个容易解决的问题,但我正在尝试这样做。
我目前可以通过计算设备之间的时间差然后让它们同步来在一秒钟内得到它们,但这还不够好,因为人耳可以在一秒钟内检测到主要差异,而这是通过WIFI。
我的下一个方法是从服务器单播一个文件,然后让所有设备直接从服务器获取它,然后实现某种类型的缓冲系统,类似于 netflix,这样网络连接将是一个限制因素。 http://www.wowza.com/ 是我用来帮助的。
我知道这可以做到,因为http://lysn.in/ 是用他们的应用程序做到的,我希望能够做类似的事情。
在我尝试单播选项后还有其他建议吗?
实施 firebase 是否有助于解决许多繁重的问题?
【问题讨论】:
你用的是AVPlayer还是低级解决方案? AVPlayer 是我正在使用的。 在您当前的解决方案中。当你与 seekToTime 同步时间?创建播放器时或 AVPlayerStatusReadyToPlay 事件之后? int 或 double 中的秒数? 是的,通过互联网。是的,他们直接在同一个互联网上交谈。是的,音乐文件当前来自互联网服务器。 嗨@WillJamieson - 您是否介意勾选任何有用的答案以保持董事会整洁 - 谢谢! 【参考方案1】:(1) 回答您的一个问题(最后一个):
Firebase 不是“那种意义上的”“实时”——PubNub 可能(几乎可以肯定)是应用/浏览器/等之间最快的“实时”消息传递。
但它们并不意味着实时意义上的实时,例如赛车游戏工程师的意思,或者实际上在您的用例中。
因此,这里的 firebase 与您无关,也无济于事。
(2) 关于您的第二个一般性问题:“鉴于我们存在通信延迟,如何在两个或多个设备上同步时间。”
现在,这是计算机科学中一个广为流传的问题。
在这里概述它是没有意义的,因为如果您点击“时间如何同步”,它会在http://www.ntp.org/ntpfaq/NTP-s-algo.htm 进行完整的解释?
所以事实上,要在两台机器上获得良好的时间基准,您应该使用它!让两台机器都使用现有的(已经完善了几十年的)NTP 同步来真正准确地设置 NTP 时间。
(例如https://***.com/a/6744978/294884)
事实上你是这样做的吗?
这样做可能会解决您的所有问题;然后同意在某个确切的时间开始。
希望对你有帮助!
【讨论】:
【参考方案2】:我建议不要使用数据移动来同步播放。这对于缓冲区和以
【讨论】:
以上是关于跨设备建立同步音乐流的主要内容,如果未能解决你的问题,请参考以下文章
使用 WiFi 在 iOS 设备之间同步音频的最佳方法是啥?