2013-03-04 3 views
7

Я занимаюсь исследовательским проектом, в котором 2 телефона Android должны играть в один и тот же звуковой файл ТОЧНО в одно и то же время, для этого мне нужно, чтобы системное время в каждом телефоне синхронизировалось с миллисекундой. Мой вопрос в том, что, как достичь этого на уровне кода? Теперь все текущие методы могут выполнять только синхронизацию второго уровня.синхронизировать системное время в 2 телефонах

+5

Я уверен, что даже если синхронизировать время с использованием NTP или что-то еще, вам будет сложно выполнить код на точной миллисекунде в виртуальной машине. –

+1

VM Я имею в виду виртуальную машину Dalvik, которую использует андроид для выполнения Java-кода, а не эмулятор android. –

+0

Возможный дубликат [Синхронизация времени для записи данных на нескольких устройствах Android] (http://stackoverflow.com/questions/11190843/sync-time-for-recording-data-on-multiple-android-devices) – Thomas

ответ

8

У вас нет. Если вам это нужно, вам нужна операционная система реального времени, в которой Android нет. Слишком много вещей может привести к неправильному перекосу часов, сборке мусора, различиям JIT dalvik и т. Д. Вы можете приблизиться к нему, используя функции часов реального времени, но вы никогда не получите такой уровень производительности, гарантированный в чем-либо написанном поверх VM на многозадачной ОС.

+0

спасибо, есть ли другой способ сделать это? Моя идея состоит в том, что сначала синхронизировать системное время, а затем отправлять сообщение этим двум телефонам через сокет, в котором я указываю, когда должен воспроизводиться звуковой файл. –

+1

@JunfeiWang У вас могут быть устройства, которые прослушивают сообщение в сокете. Затем отправьте свое сообщение с третьего компьютера в той же сети через Multi-Cast. В зависимости от условий сетевого трафика оба должны получать сообщение примерно в одно и то же время (достаточно близко, чтобы они могли воспроизводить звук в синхронизации настолько, чтобы человеческое ухо не заметило разницы). – FoamyGuy

+0

@FoamyGuy спасибо за ваш совет, я постараюсь настроить выделенную сеть Wi-Fi и реализовать это. –

Смежные вопросы