我製作了一個媒體播放器,基本上播放通過文本文件安排的任何內容。玩家還可以在多臺機器(PC)上播放完全相同的剪輯。問題是同步。每臺機器都開始播放同一個視頻,但它們出來的時間大約是400毫秒,看起來很糟糕,如果有聲音,它會更糟糕。通過網絡同步視頻播放
我目前做的是:
一體機設置爲主機和所有其他的機器都設置爲奴隸。主人決定將播放什麼項目。它等待來自每個從屬裝置的消息,一旦所有從屬裝置連接(或在超時之後),它就廣播需要播放的文件的項目ID。所有機器然後開始播放該文件。
我也試過:
我認爲,文件加載時間可能是在同步失配的主要驅動因素,所以我chankged代碼做到以下幾點。
大師仍然決定要播放什麼文件。它等待來自每個從屬設備的連接消息(或超時)並傳輸要播放的文件的項目標識。所有機器開始播放該文件,但立即暫停播放。主站然後再次等待來自每個從站的準備好的消息。一旦所有從屬響應,主設備就會向所有從設備發送播放消息。所有的機器然後繼續文件。
這不幸並沒有改善這個問題。我現在很確定同步不匹配是由於網絡延遲。我怎樣才能彌補這一點?或者,也許可以確定每個奴隸的延遲?
所有網絡通信都使用winsock完成。
任何想法或想法,非常感謝。
我不是流媒體。播放的文件本地存儲在每臺機器上。主人只是通知奴隸要播放哪個文件以及何時播放。只有消息通過網絡發送。我可以延遲100ms或更短的時間。 – Nemesis 2011-03-11 09:45:34
@Nenesis - 那就更簡單了。使用NTP同步時鐘,你很好。 – littleadv 2011-03-11 19:41:05
Windows時間服務無法比大約1-2秒範圍更準確地維護系統時間。 – Nemesis 2011-03-14 08:27:34