2013-03-04 1 views
7

2 개의 안드로이드 폰이 똑같은 시간에 똑같은 사운드 파일을 재생해야한다는 조사 프로젝트를하고 있습니다. 이렇게하려면 각 전화기의 시스템 시간을 밀리 초로 동기화해야합니다. 제 질문은 코드 수준에서이를 달성하는 방법입니다. 이제 모든 현재 메소드는 두 번째 레벨 동기화 만 수행 할 수 있습니다.2 개의 전화에서 시스템 시간을 동기화하십시오

+5

NTP 나 다른 것을 사용하여 시간을 동기화해도 VM의 정확한 밀리 초에 코드를 실행하는 데 어려움을 겪을 수 있습니다. –

+1

VM은 안드로이드가 안드로이드 에뮬레이터가 아닌 자바 코드를 실행하는 데 사용하는 Dalvik 가상 머신을 의미합니다. –

+0

[여러 Android 기기의 데이터 기록 시간 동기화] 가능한 중복 (http://stackoverflow.com/questions/11190843/sync-time-for-recording-data-on-multiple-android-devices) – Thomas

답변

8

그렇지 않습니다. 필요한 경우, 안드로이드가 아닌 실시간 OS가 필요합니다. 너무 많은 것들이 잘못된 시계 스큐, 가비지 콜렉션, dalvik JIT 차이점 등을 만들 수 있습니다. 실시간 클럭 기능을 사용하여이 기능에 가깝게 접근 할 수는 있지만 작성된 모든 내용에서 결코 그런 종류의 성능을 얻지는 못할 것입니다 멀티 태스킹 OS에서 VM 맨 위에.

+0

감사합니다. 거기에 다른 방법이 있습니까? 나의 현재 아이디어는 먼저 시스템 시간을 동기화 한 다음 사운드 파일을 재생할시기를 지정하는 소켓을 통해이 두 전화기에 메시지를 보냅니다. –

+1

@ JunfeiWang 두 장치 모두 소켓에서 메시지를 수신 대기 할 수 있습니다. 그런 다음 멀티 캐스트를 통해 동일한 네트워크의 세 번째 컴퓨터에서 메시지를 보냅니다. 네트워크 트래픽 조건에 따라 둘 다 대략 같은 시간에 메시지를 수신해야합니다. (사람의 귀가 차이를 느끼지 못할 정도의 충분한 사운드를 재생해야합니다.) – FoamyGuy

+0

@FoamyGuy 귀하의 조언에 고마워, 내가 전용 와이파이 네트워크를 설정하고 이것을 구현하려고합니다. –

관련 문제