2013-03-04 15 views
7

2 android telefonun aynı ses dosyasını aynı anda EXACTLY'de çalması gereken bir araştırma projesi yapıyorum, bunu yapmak için her telefondaki sistem saatinin milisaniyeye senkronize edilmesi gerekiyor. Sorum şu ki, bu kod düzeyinde nasıl elde edilir? Şimdi tüm mevcut yöntemler sadece ikinci seviye senkronizasyon yapabilir.2 telefondan sistem saatini senkronize et

+5

NTP veya başka bir şeyle senkronize edilen zamanları alsanız bile, SM'nizde tam bir milisaniyede kodunuzun çalıştığı zor bir süreye sahip olacağınızdan eminim. –

+1

VM'ye göre android, android emülatörü değil, Java kodunu çalıştırmak için kullanan Dalvik Sanal Makinesidir. –

+0

[Birden Fazla Android Cihazda Verileri Kaydetmek İçin Senkronizasyon Zamanı] 'nın olası bir kopyası (http://stackoverflow.com/questions/11190843/sync-time-for-recording-data-on-multiple-android-devices) – Thomas

cevap

8

Yapmıyorsunuz. Eğer buna ihtiyacınız varsa, Android'in olmayan gerçek zamanlı bir işletim sistemine ihtiyacınız var. Çok fazla şey yanlış gitmesine neden olabilir - saat çarpıklığı, çöp toplama, dalvik JIT farklılıkları, vb. Gerçek zamanlı saat fonksiyonlarını kullanarak buna yakın olabilirsiniz, ama asla yazılı bir şeyde bu tarz bir performans elde edemeyeceksiniz. Çok görevli bir işletim sistemi üzerinde bir VM'nin üstünde.

+0

teşekkürler, Bunu yapmanın başka yolu var mı? Benim şu anki düşüncem, önce sistem saatini senkronize etmekti, daha sonra bu 2 telefona, ses dosyasının ne zaman çalınacağını belirttiğim soket üzerinden bir mesaj gönderiyor. –

+1

@JunfeiWang Her iki cihaza da bir soket üzerinde mesaj dinleyebilirsiniz. Ardından mesajınızı Multi-Cast ile aynı ağdaki 3. makineden gönderin. Şebeke trafik koşullarına bağlı olarak, her ikisini de aynı anda mesaj almalıdır (sesi, insan kulağının farkı fark etmeyecek kadar senkronize bir şekilde çalması için yeterince yakın olmalıdır). – FoamyGuy

+0

@FoamyGuy Tavsiyeniz için teşekkür ederiz, özel bir wifi ağı kurmaya çalışacağım ve bunu uygulayacağım. –

İlgili konular