>> Technologie Électronique >  >> Audio personnel >> Boomboxes

Code Android pour augmenter volume média programmatiquement (AudioManager)

Utiliser AudioManager.adjustStreamVolume() avec ADJUST_RAISE. Nécessite permission MODIFY_AUDIO_SETTINGS (accordée apps système/avec consentement utilisateur via panneau volume).

Kotlin (Moderne)

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

Java (Legacy)

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

Types de flux

  • STREAM_MUSIC — média, jeux, vidéo.
  • STREAM_RING — sonneries, notifications.
  • STREAM_ALARM — alarmes.
  • STREAM_VOICE_CALL — volume appel.
  • STREAM_SYSTEM — sons système.
  • STREAM_DTMF — tons numérotation.
  • STREAM_ACCESSIBILITY — TalkBack.
  • STREAM_BLUETOOTH_SCO — voix casque BT.

Flags

  • FLAG_SHOW_UI — affiche toast curseur volume système.
  • FLAG_PLAY_SOUND — joue son changement volume.
  • FLAG_REMOVE_SOUND_AND_VIBRATE — ajustement silencieux.
  • FLAG_VIBRATE — retour haptique.

Bonne pratique (API 28+)

Utiliser AudioManager.setStreamVolume() avec index absolu (0–max) pour contrôle précis. Interroger max via getStreamMaxVolume().

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

Permissions

  • Pas permission spéciale pour adjustStreamVolume (action utilisateur).
  • setStreamVolume nécessite MODIFY_AUDIO_SETTINGS_NOTIFICATION_POLICY ou action utilisateur.
  • Ne pas détourner touches volume — override onKeyDown(KeyEvent.KEYCODE_VOLUME_UP) dans Activity.

Tester sur device — routage audio émulateur diffère.

Boomboxes