2013-03-04 8 views
7

Wykonuję projekt badawczy, w którym 2 telefony z Androidem muszą odtwarzać ten sam plik dźwiękowy dokładnie w tym samym czasie, aby to zrobić potrzebuję czasu systemowego w każdym telefonie są zsynchronizowane z milisekundą. Moje pytanie brzmi: jak to osiągnąć na poziomie kodu? Teraz wszystkie obecne metody mogą wykonywać tylko synchronizację drugiego poziomu.synchronizacja czasu systemowego w 2 telefonach

+5

Jestem przyzwoicie pewny, że nawet jeśli otrzymasz synchronizację czasu za pomocą NTP lub coś podobnego, będziesz miał trudności z uruchomieniem kodu na milisekundę w VM. –

+1

Przez VM mam na myśli maszynę wirtualną Dalvik, której android używa do wykonywania kodu Java, a nie emulatora androida. –

+0

możliwy duplikat [Czas synchronizacji zapisu danych na wielu urządzeniach z systemem Android] (http://stackoverflow.com/questions/11190843/sync-time-for-recording-data-on-multiple-android-devices) – Thomas

Odpowiedz

8

Nie musisz. Jeśli tego potrzebujesz, potrzebujesz systemu operacyjnego działającego w czasie rzeczywistym, którego nie ma Android. Zbyt wiele rzeczy może sprawić, że coś pójdzie nie tak - przekręcenie zegara, zbieranie śmieci, różnice w JIT Dalvik itp. Możesz zbliżyć się do niego za pomocą funkcji zegara czasu rzeczywistego, ale nigdy nie osiągniesz tego rodzaju wydajności w niczym napisanym na maszynie wirtualnej w wielozadaniowym systemie operacyjnym.

+0

dziękuję, czy jest jakiś inny sposób na zrobienie tego? Mój obecny pomysł polega na tym, że najpierw synchronizuję czas systemowy, a następnie wysyłam wiadomość do tych 2 telefonów za pośrednictwem gniazda, w którym określam, kiedy należy odtwarzać plik dźwiękowy. –

+1

@JunfeiWang Możesz mieć oba urządzenia nasłuchujące na wiadomość na gnieździe. Następnie wyślij wiadomość z trzeciego komputera w tej samej sieci za pomocą funkcji przesyłania wielu filmów. W zależności od warunków ruchu w sieci obie wiadomości powinny być odbierane mniej więcej w tym samym czasie (wystarczająco blisko, aby dźwięk był tak zsynchronizowany, aby ucho ludzkie nie zauważyło różnicy). – FoamyGuy

+0

@ FoamyGuy dziękuję za radę, spróbuję skonfigurować dedykowaną sieć Wi-Fi i zaimplementować to. –

Powiązane problemy