2013-03-04 9 views
7

Sto facendo un progetto di ricerca in cui 2 telefoni Android devono riprodurre lo stesso file audio ESATTAMENTE nello stesso momento, per fare ciò ho bisogno che l'ora del sistema in ogni telefono sia sincronizzata al millisecondo. La mia domanda è, come ottenere questo a livello di codice? Ora tutti i metodi attuali possono eseguire solo la sincronizzazione di secondo livello.sincronizza l'ora del sistema in 2 telefoni

+5

Sono sicuro che anche se si sincronizzano gli orari tramite NTP o qualcosa del genere, sarà difficile eseguire il codice su un millisecondo nella VM. –

+1

Per VM intendo la macchina virtuale Dalvik che Android usa per eseguire il codice Java, non un emulatore Android. –

+0

possibile duplicato di [Tempo sincronizzazione per registrare dati su più dispositivi Android] (http://stackoverflow.com/questions/11190843/sync-time-for-recording-data-on-multiple-android-devices) – Thomas

risposta

8

Non è così. Se necessario, è necessario un sistema operativo in tempo reale, che Android non è. Troppe cose possono farle andare storte - clock skew, garbage collection, differenze JIT dalvik, ecc. Puoi avvicinarti ad esso usando le funzioni dell'orologio in tempo reale, ma non otterrai mai quel tipo di performance assicurata in qualsiasi cosa scritta su una VM su un sistema operativo multitasking.

+0

grazie, c'è un altro modo per farlo? La mia idea attuale è quella di sincronizzare prima l'ora del sistema, quindi inviare un messaggio a questi 2 telefoni tramite socket in cui specifichi quando il file audio deve essere riprodotto. –

+1

@JunfeiWang È possibile che entrambi i dispositivi stiano ascoltando un messaggio su un socket. Quindi invia il tuo messaggio da una terza macchina sulla stessa rete tramite Multi-Cast. A seconda delle condizioni del traffico di rete, entrambi dovrebbero ricevere il messaggio all'incirca nello stesso tempo (abbastanza vicino da riprodurre il suono in sincrono a tal punto che l'orecchio umano non noterebbe la differenza). – FoamyGuy

+0

@FoamyGuy grazie per il vostro consiglio, cercherò di creare una rete wifi dedicata e implementarlo. –

Problemi correlati