2012-03-14 43 views
2

我需要製作一個應用程序,可以同時在兩個(或更多)iPhone上開始播放相同的媒體,問題在於它必須是完美的,沒有第二個延遲等等。 iPhone有可能在每臺設備上都有完美(或接近完美)的通用時間戳。或者,也許我有其他選擇?iPhone - 同步兩個iPhone,讓他們在同一時間開始任務

+0

他們會彼此靠近嗎?是否會有一個他們都可以連接的本地網絡? – 2012-03-14 10:29:30

+0

他們將關閉,但不知道有關網絡.. – sed 2012-03-14 10:33:08

回答

0

沒有與系統時鐘不同的內部時鐘 - 所以這意味着每個設備可能有完全不同的時間設置(事實上,它們很可能會有不同的時間設置,即使只有一秒鐘或兩個)。

使用網絡/互聯網連接與中央時間服務器進行同步可能是一種可以採取的方法,但這需要網絡/互聯網連接,並且您必須設置考慮到時間延遲的時鐘連接到/來自時間服務器。

您可能必須擁有某種本地同步系統。如果它們靠得很近,一種方法可能是在應用程序中的設備之間創建一個ad-hoc藍牙連接,然後在您的應用程序中使用一些同步代碼來使內部計時器保持不變。例如,您可以將第一個應用程序啓動爲「控制器」,然後所有其他應用程序都會尋找此控制器並與其同步。同步可以是控制器發送其他設備可以獲得的時間戳消息並設置內部計數器匹配。

如果不瞭解有關要求的更多信息,很難說如何最好地解決這個問題,因爲在運行應用程序和發出聲音之間可能存在時間限制,或者您必須有觸發信號,或者只是在時間x他們需要發出聲音。

0

如果他們是在同一時區,同時設置,可以安排其使用的NSTimer的

- (id)initWithFireDate:(NSDate *)date interval:(NSTimeInterval)ti target:(id)t selector:(SEL)s userInfo:(id)ui repeats:(BOOL)rep;開始你的函數在時間的paticular點。

+0

這隻會工作,如果設備都具有完全相同的時間設置 – 2012-03-14 10:30:00

+0

但如果他們都有不同的時間設置的設備..? (自動時間更新已關閉) – 2012-03-14 10:30:12

+0

已編輯。感謝:) – Vignesh 2012-03-14 10:32:48

1

2規則:

  1. 找到一種方法,具有相同的時間上的每個設備
  2. 使用使用此共享統一的時間了「startAtTime」功能。沒有「startNow」功能。

iPhone應該能夠使用遠程服務器同步他們的日期和時間,如果這還不夠準確(誰知道),一種實現方法(假設你的iPhone能夠在它們之間進行通信已經):

  • 主人發送它的時間10次(或更多)從屬奴隸。
  • 每次從比較它的時間與接收到的一個,使增量
  • 10次嘗試後,使三角洲的平均值,並使用這是否意味着調整從時間相應
0

一種選擇你必須從普通服務器訪問時間,然後相應地在兩臺設備上啓動計時器(根據您從服務中獲得的時間計算),以便在兩臺設備上都有確切的時間,然後播放它...

即使這樣也有一個問題,因爲互聯網速度可能會有所不同,並且在獲得重新啓動時兩個設備中的一個設備可能會稍有延遲與其他設備相比,從另一臺設備看到你的要求,他們可能會失去同步一個毫秒左右,這將是可見..:/任何其他想法任何人..?

+0

我認爲,如果您試圖精確同步2臺或更多臺附近設備的時鐘,並且網絡延遲時間未知,唯一方法是使用聽覺(「勾號!「)或視頻(閃光燈)提示。無論是你的解決方案還是架構師都可以處理可能長達5秒鐘的設備。 – ScottyB 2014-01-07 16:25:30