>> Tecnologia Eletrônica >  >> Áudio Pessoal >> Boomboxes

Código Android para Aumentar Volume de Mídia Programaticamente (AudioManager)

Use AudioManager.adjustStreamVolume() com ADJUST_RAISE. Requer permissão MODIFY_AUDIO_SETTINGS (concedida a apps de sistema/com consentimento do usuário via painel de volume).

Kotlin (Moderno)

val audioManager = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
audioManager.adjustStreamVolume(
    AudioManager.STREAM_MUSIC,
    AudioManager.ADJUST_RAISE,
    AudioManager.FLAG_SHOW_UI // ou FLAG_PLAY_SOUND
)

Java (Legado)

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audioManager.adjustStreamVolume(
    AudioManager.STREAM_MUSIC,
    AudioManager.ADJUST_RAISE,
    AudioManager.FLAG_SHOW_UI
);

Tipos de Stream

  • STREAM_MUSIC — mídia, jogos, vídeo.
  • STREAM_RING — toques, notificações.
  • STREAM_ALARM — alarmes.
  • STREAM_VOICE_CALL — volume em chamada.
  • STREAM_SYSTEM — sons do sistema.
  • STREAM_DTMF — tons de discagem.
  • STREAM_ACCESSIBILITY — TalkBack.
  • STREAM_BLUETOOTH_SCO — voz headset BT.

Flags

  • FLAG_SHOW_UI — mostra toast do slider de volume do sistema.
  • FLAG_PLAY_SOUND — toca tom de mudança de volume.
  • FLAG_REMOVE_SOUND_AND_VIBRATE — ajuste silencioso.
  • FLAG_VIBRATE — feedback tátil.

Melhor Prática (API 28+)

Use AudioManager.setStreamVolume() com índice absoluto (0–máx) para controle preciso. Consulte o máximo via getStreamMaxVolume().

val maxVol = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, maxVol, AudioManager.FLAG_SHOW_UI)

Permissões

  • Nenhuma permissão especial para adjustStreamVolume (iniciado pelo usuário).
  • setStreamVolume requer MODIFY_AUDIO_SETTINGS_NOTIFICATION_POLICY ou ação do usuário.
  • Não sequestre teclas de volume — sobrescreva onKeyDown(KeyEvent.KEYCODE_VOLUME_UP) na Activity.

Teste em dispositivo real — roteamento de áudio do emulador difere.