Я хотел бы контролировать объем мультимедиа с моим приложением, используя обычные кнопки регулировки громкости. Проблема в том, что мое приложение использует короткие звуки, и они могут раздражать пользователя. Вы можете регулировать громкость только во время воспроизведения (в течение 1 секунды), после чего начинает регулировать громкость звонка. Как настроить уровень громкости мультимедиа по умолчанию?
Как контролировать объем мультимедиа?
Ответ 1
В вашей деятельности onCreate() вы можете:
setVolumeControlStream(AudioManager.STREAM_MUSIC);
Ответ 2
Я не пробовал это, но вы должны иметь возможность перехватывать обычные кнопки громкости, переопределяя onKeyDown(int keyCode, KeyEvent event)
в своей деятельности. Проверьте коды клавиш KEYCODE_VOLUME_UP
и KEYCODE_VOLUME_DOWN
.
Использование AudioManager.setStreamVolume(int, int, int) с STREAM_MUSIC
для параметра streamType
должно работать, и если вы вернетесь true
из метода onKeyDown(...)
(чтобы указать, что вы обработали событие), он должен помешать системе регулировать громкость звонка. Убедитесь, что вы возвращаете false
для всех других кодов клавиш, которые вы не обрабатываете.
Ответ 3
Пожалуйста, не обрабатывайте сами клавиши громкости - почти я mpossible to guarantee
, что вы не нарушаете поведение клавиш регулировки громкости.
Вызовите этот API в onCreate():
setVolumeControlStream(AudioManager.STREAM_MUSIC);
Это говорит AudioManager, что при использовании application has focus
клавиши регулировки громкости должны регулировать громкость музыки.