2011-07-22 21 views
24

Chciałbym kontrolować głośność multimediów w mojej aplikacji za pomocą zwykłych przycisków głośności. Problem polega na tym, że moja aplikacja używa krótkich dźwięków i może być denerwująca dla użytkownika. Możesz regulować głośność tylko podczas odtwarzania (przez 1 sek.), A następnie zaczyna regulować głośność dzwonka. Jak ustawić głośność multimediów jako domyślną?Jak kontrolować głośność multimediów?

Odpowiedz

45

W Twojej aktywności za onCreate() można zrobić:

setVolumeControlStream(AudioManager.STREAM_MUSIC); 
+0

Dziękuję, to działa dobrze. –

+0

@Kevin: +1, nie wiedziałem o tej metodzie - nieco prostsze niż moje podejście. ;-) – Squonk

+0

Co powinienem zrobić, jeśli chcę mieć dwa strumienie kontroli głośności? –

3

Nie próbowałem tego, ale powinieneś być w stanie przechwycić zwykłe przyciski głośności, przesuwając onKeyDown(int keyCode, KeyEvent event) w swojej Działalności. Sprawdź kody klawiszy: KEYCODE_VOLUME_UP i KEYCODE_VOLUME_DOWN.

Korzystanie AudioManager.setStreamVolume(int, int, int) z STREAM_MUSIC parametru streamType powinno działać, a jeśli wrócisz true od sposobu onKeyDown(...) (wskazać już obsługiwane zdarzenie), powinno zapobiec systemu z regulacji głośności dzwonka. Upewnij się, że zwróciłeś false dla wszystkich innych kluczy, których nie obsługujesz.

+0

Co należy zrobić, jeśli chcę mieć dwa strumienie regulacji głośności? –

3

proszę nie obsługują klawisze głośności samodzielnie - to prawie ja mpossible to guarantee że nie złamie zachowanie klawiszy głośności .

nazywają to API w swojej onCreate():

setVolumeControlStream(AudioManager.STREAM_MUSIC); 

Ten opowiada Audiomanager, że gdy application has focus, klawisze głośności należy wyregulować głośność muzyki.

Powiązane problemy