5

Zauważyłem problem z moją aplikacją do strumieniowego przesyłania dźwięku na urządzeniach z Androidem 6.0. Strumieniowanie audio odbywa się przez HLS przez połączenie sieciowe. Odtwarzanie dźwięku odbywa się w usłudze pierwszoplanowej z aktywnym powiadomieniem. Zauważyłem, że gdy aplikacja wchodzi w tryb drzemki/gotowości aplikacji, połączenie Wi-Fi jest tracone, a odtwarzanie zatrzymuje się. Moja usługa jest na pierwszym planie i ma aktywne powiadomienie, które zgodnie z dokumentami powinno zakwalifikować moją aplikację, aby się jej nie przerywało. Zdobywam i utrzymuję także Blokadę Wi-Fi. Czytałem o dodaniu do białej listy mojej aplikacji, jednak aplikacje takie jak Spotify nie żądają żadnych specjalnych uprawnień, aby uniknąć tego problemu. Wszelkie przemyślenia lub sugestie?Tryb Doze/App Standby podczas odtwarzania dźwięku

+0

Czy zdołasz znaleźć jakieś rozwiązanie tego problemu? Mam też ten sam problem z moją aplikacją do strumieniowego przesyłania dźwięku na Androida 6.0 Kupuję również Wakelock i Wifilock, ale kiedy dzieje się Drzemka, przesyłanie audio zatrzymuje się. Jakieś pomysły? – user669231

+0

Żadne rozwiązania do tej pory nie zostaną zaktualizowane, jeśli je znajdę. Proszę zrobić to samo @ user669231 – two1stnamz

+0

OK, na pewno potwierdzi, jeśli znajdę rozwiązanie? Czy możesz również potwierdzić, po upływie czasu, przez jaki dźwięk się zatrzymuje (czyli po tym, jak długo telefon przechodzi w Drzemkę?). Moi użytkownicy skarżą się po kilku minutach. Ale czy drzemka nie może się wydarzyć po znacznym okresie czasu ... może być około godziny? – user669231

Odpowiedz

2

Zalecanym rozwiązaniem jest posiadanie oddzielnych procesów, jednego do odtwarzania audio i do interfejsu użytkownika. See this long thread for lots of details

Oto odnośny odcinek od pani Hackborn:

... mają swój bieg usług pierwszoplanowy w innym procesie niż aktywność. Z tego, co widzę, wszystko będzie dobrze. Byłbym ciekawy, czy dostaniesz tam pożądane zachowanie.

Jest to tak naprawdę nasza zalecana praktyka w tej sytuacji - jeśli masz długą usługę pierwszego planu, powinna ona być w oddzielnym procesie od działania, więc nie wymusza całej pamięci powiązanej z działalność należy utrzymać. (Właśnie dlatego ten błąd przeszedł, wszystkie nasze aplikacje [Google] używają tego wzorca).

+0

Witam @ dhaag23 dzięki za odpowiedź. Próbowałem tego, ale moja aplikacja wciąż traci połączenie Wi-Fi na urządzeniach z systemem 6.0, ale działa poprawnie na urządzeniach z okresu wcześniejszego niż 6.0. – two1stnamz

+0

Sprawdź ten wątek w google fix dla tego. Może to twoja sytuacja? https://code.google.com/p/android/issues/detail?id=193802 – dhaag23

+1

Witam @ dhaag23 Mogłem zobaczyć sugerowane rozwiązanie na końcu wątku "najlepszym rozwiązaniem, które znalazłem, jest po prostu otwarcie innego pierwszego planu usługa z blokadą wybudzania w oddzielnym procesie, proces ten nie ma żadnych działań, nie ma odbiorników itp. Zapewnia to blokadę wybudzającą, która ma być trzymana " Czy ktoś wypróbował to rozwiązanie i czy to działa? – user669231

Powiązane problemy