Muszę zadzwonić pod numer setVolumeControlStream
z usługi, która odtwarza dźwięk za pośrednictwem STREAM_SYSTEM
. Oczywiście w działaniu, które nie stanowi problemu, ale jak mogę to zrobić z usługą?Wywołanie setVolumeControlStream z usługi
Odpowiedz
myślę, że biblioteka może dostarczyć to, czego potrzebujesz:
Od spojrzeń tego, to nie jest możliwe, tak, jak starają się to zrobić.
Jak powiedział w android reference
Sugerowana strumień audio zostanie przywiązany do okna tej działalności
Stąd z usługi, która ma żadnej aktywności, nie ma okna związać strumień audio do.
Wygląda jednak na to, że powinieneś być w stanie odbierać zdarzenia klucza multimedialnego (w tym klucze głośności) od nadawcy, jak pokazano here, które pozwolą Ci zmienić wolumen usługi bez widocznego działania.
Przyjrzałem się temu rozwiązaniu i wygląda na to, że nie działa: nie ma możliwości użycia odbiorników do odbierania zdarzeń kluczy głośności. W opublikowanym przez Ciebie linku, android.intent.action.MEDIA_BUTTON jest używany do odtwarzania przycisków, takich jak odtwarzanie/pauza, następny, poprzedni, itd ... Ale bez przycisków głośności. –
Mój błąd, więc myślę, że nie jest to możliwe z usługi. Wydaje się zatem, że przyczyną jest zatrzymanie aplikacji przechwytujących zdarzenia związane z głośnością i zakłócenie zdolności użytkownika do zmiany głośności dzwonka/głośności systemu. Czy jest jakiś powód, dla którego nie możesz używać STREAM_MUSIC? – Guykun
W moim przypadku, ponieważ chciałbym wyciszyć inne aplikacje, podczas gdy moja aplikacja odtwarza muzykę. Ponieważ wszystkie inne aplikacje używają STREAM_MUSIC, rozwiązaniem, które znalazłem, było wyciszenie STREAM_MUSIC i użycie innego strumienia. –
Nie jest to możliwe, jeśli biblioteka również (choć wygląda ładnie). – Force