Witam. Muszę napisać appke na android która odtwarza muzyke synchronicznie na kilku telefonach na zasadzie DJ-speakers.
Aktualnie mój "algorytm" wygląda tak:
- Mierzę czas po jakim server dostaje odpowiedź od klienta po wysłaniu impulsu.
- Dzielę wynik na pół bo impuls odtwarzania wysyłąć będę tylko w stronę klienta.
- Wysyłam impuls rozpoczęcia odtwarzania do klienta i po sleepie równym wynikowi z powyższych punktów odtwarzam piosenkę na serverze.
Problem polega na tym, że to działa różnie. Raz dobrze raz źle. Ogólnie opóźnienie mierzone w tych samych warunkach (taka sama odległość między telefonami, ta sama sieć, odstęp czasowy pomiarów jakieś kilkanaście/kilkadziesiąt sekund) wydają się randomowe (raz 30 ms innym razem 130).
Orientujecie się może co mogę robić nie tak? Korzystam z bilbioteki Kryonet i wysyłam impulsy przez TCP... Bede wdzieczny za każdą pomoc bo męczę sięz tym już bardzo długo i nie potrafię znaleźć dobrego rozwiązania.
A może by tak zsychronizować zegary systemowe wszystki urządzeń podłączonych i odtwarzać muzykę o określonej godzinie? Tylko jak zsynchronizować zegary kurde... Z gory dzieki za pomoc