2011-11-07 16 views
17

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

3

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.

+0

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. –

+0

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

+0

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. –

Powiązane problemy