Android - synchroniczne odtwarzanie muzyki

0

Cześć.
Muszę napisać appke na android która odtwarza muzyke synchronicznie na kilku telefonach na zasadzie DJ-speakers. Dotyczas kombinowałem z wysyłaniem impulsu rozpoczęcia odtwarzania przez sockety, jednak ten sposób mnie zawiódł. Czy macie może pomysł jak to ugryźć? Byłbym bardzo wdzięczny:)

0

Jeśli opóźnienie na socketach jest nie zadowalające, chociaż myślę że po sieci lokalnej powinno nie być problemów z małym pingiem. To zacząłbym od synchronizacji zegarów. Np. zmierzył średni czas pingu pomiędzy dostarczeniem komunikatu a jego odbiorem i skalibrował odpowiedni czas odpalenia utworów. Należy też mieć na uwadze żeby zbufforować wcześniej odtwarzane utwory ponieważ czas wczytania może być różny na różnych urządzeniach, czy to przez moc, czy też aktualne obciążenie.

Chociaż na początku pobawiłbym się raczej w optymalizacje socketów. Jeśli bawisz się zwykłym io i tcp to mogą pojawić się takie problemy. Pierwsze co to należy wyłączyć algorytm optymalizacji, który ogranicza częstotliwość wysyłanych pakietów. Ogólnie to proponuje skorzystać z biblioteki https://github.com/EsotericSoftware/kryonet i zastosować pakiety UDP.

0

Dzięki wielki za odpowiedź! Mógłbyś jeszcze powiedzieć w czym ta bilbioteka KryoNet jest pomocna?
Z góry wielkie dzięki!

0

Kryonet jest wysokopoziomowym api dla nio. Ty prawdopodobnie działałeś teraz na io, czyli wszystko machałeś w pętli i pewnie nie za bardzo zagłębiałeś się w specyfikę socketów. Jeśli więc zależy ci na szybkim napisaniu wydajnej sieciowej aplikacji to ci kryonet w tym pomoże. Tutaj popełniłem dzisiaj tutorial, będący wstępem do użytkowania tej biblioteki: http://silversableprog.blogspot.com/2015/11/javakryonet-poaczenie-tcp-i-udp-serwer.html
Przestudiuj sobie jego strukturę i zobacz czy nie będzie dla ciebie lepszym rozwiązaniem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1