2014-10-04 126 views
2

我試圖將音頻文件從服務器流到iOS設備,並播放它們完全同步。例如,在我的手機上,我可能會在20秒內進入歌曲,然後我旁邊的朋友也應該在20秒內進入歌曲。我知道這不是一個容易解決的問題,但我正在嘗試這樣做。跨設備建立同步音樂流

我現在可以通過計算設備之間的時間差異來讓它們在一秒之內彼此同步,但是這樣做不夠好,因爲人耳可以檢測到秒鐘的主要差異,這是通過WIFI。

我的下一個方法是從服務器單播一個文件,然後讓所有設備直接從服務器上取得它,然後實現一些類似於netflix的緩衝系統,這樣網絡連接將是限制因素。我會用http://www.wowza.com/來幫忙。

我知道這可以做到,因爲http://lysn.in/是與他們的應用程序,並且我希望能夠做類似的事情。

任何其他建議後,我嘗試我的單播選項?

實施Firebase是否有助於解決很多繁重的問題?

+0

您是使用AVPlayer還是低級解決方案? – kabarga 2014-10-12 20:31:24

+0

AVPlayer就是我正在使用的。 – 2014-10-13 14:38:40

+0

在您當前的解決方案。當你用seekToTime同步時間?當創建播放器或AVPlayerStatusReadyToPlay事件後?秒在int或雙? – kabarga 2014-10-13 15:00:36

回答

3

(1)在回答你的問題之一(最後一個):

火力地堡不是「實時」的「這個意義上說」 - PubNub可能(幾乎可以肯定)最快的「實時」消息適用於應用程序/瀏覽器/等。

但是,它們並不意味着即時的意義上的實時性,比如說賽車遊戲工程師在您的使用案例中的意思。

因此,firebase與您無關,無法提供幫助。 (2)關於你的第二個一般問題:「鑑於我們有通信延遲,如何在兩個或更多設備上同步時間。」

現在,這是一個非常好的計算機科學問題。

這裏將毫無意義地概述它,因爲如果點擊「時間同步如何」,在這裏完全解釋爲http://www.ntp.org/ntpfaq/NTP-s-algo.htm

所以實際上,要在兩臺機器上獲得良好的時間基準,請使用那個!使用現有(幾十年來完善的)NTP同步技術,兩臺機器都能夠真正準確地設置NTP時間。

(因此,例如https://stackoverflow.com/a/6744978/294884

其實你在幹什麼呢?

這樣做可能會解決您的所有問題;然後只是同意在確切的時間開始。

希望它有幫助!

0

我建議不要使用數據移動來同步播放。這應該很容易處理緩衝區和在緩衝區大小的1/2處發送的週期性「同步」信號。最糟糕的情況是,這應該會在相對於同步信號提前或落後的設備上產生一個小點。