我正在尝试将音频文件从服务器流式传输到iOS设备,并完全同步播放它们。例如,在我的手机上,我可能在一首歌中播放了20秒,而我旁边的朋友也应该在歌曲中播放20秒。我知道这不是一个容易解决的问题,但我正在尝试这样做。
我目前可以通过计算设备之间的时间差,让它们在一秒内同步,但这还不够好,因为人耳可以在一秒内检测到主要的差异,而这是通过WIFI实现的。
我的下一种方法是从服务器单播一个文件,然后让所有设备直接从服务器获取它,然后实现类似于netflix的某种类型的缓冲系统,因此网络连接将是一个限制因素。我会用http://www.wowza.com/来帮助你做到这一点。
我知道这是可以做到的,因为http://lysn.in/正在用他们的应用程序做到这一点,而我希望能够做一些类似的事情。
在我尝试我的单播选项后,还有其他建议吗?
实现firebase是否有助于解决许多繁重的提升问题?
发布于 2014-10-14 17:48:38
(1)回答你的一个问题(最后一个):
Firebase不是“实时”的-- PubNub可能(几乎可以肯定)是应用程序/浏览器/等之间最快的“实时”消息传递。
但它们并不意味着实时,比如说,像竞赛游戏工程师那样,或者实际上在你的用例中。
所以firebase在这里与你无关,也不会有任何帮助。
(2)关于你的第二个一般性问题:“如何在两个或更多设备上同步时间,因为我们有通信延迟。”
现在,这在计算机科学中是一个非常常见的问题。
因此,实际上,为了在两台机器上都获得良好计时器,您应该使用!使用现有的(经过几十年完善的) NTP同步,让两台机器都能准确地设置NTP的时间。
事实上,你是在做这个吗?
这样做可能会解决你所有的问题;然后只需同意在某个确切的时间开始。
希望它能帮上忙!
发布于 2014-10-14 22:53:20
我建议不要使用数据移动来同步回放。这对于缓冲器和以< 1/2缓冲器大小的周期发送的周期性"sync“信号来说应该是直接的。最坏的情况下,这应该会在相对于同步信号领先或落后的设备上产生一个小光点。
https://stackoverflow.com/questions/26197967
复制相似问题