Skip to content

How to tell android which volume (media/ringtone etc.) should be controlled by your app

by mat on February 1st, 2010

In my android apps I was getting annoying problems that whilst playing sound the volume buttons would control the media volume, but when no sound was playing they would control the ringtone volume. I found the following by trial and error, hopefully this post will help people with the same problem.

This is done by placing a call of setVolumeControlStream in the onCreate part of your activity which takes on of the following values

  • AudioManager.STREAM_MUSIC
  • AudioManager.STREAM_RING
  • AudioManager.STREAM_ALARM
  • AudioManager.STREAM_NOTIFICATION
  • AudioManager.STREAM_SYSTEM
  • AudioManager.STREAM_VOICECALL

Below shows the code required to set your applications default volume control to any of the above values:

Media Volume (Music/Video etc…)

this.setVolumeControlStream(AudioManager.STREAM_MUSIC);

Ringtone Volume

this.setVolumeControlStream(AudioManager.STREAM_RING);

Alarm Volume

this.setVolumeControlStream(AudioManager.STREAM_ALARM);

Notification Volume

this.setVolumeControlStream(AudioManager.STREAM_NOTIFICATION);

System Volume

this.setVolumeControlStream(AudioManager.STREAM_SYSTEM);

Voicecall Volume

this.setVolumeControlStream(AudioManager.STREAM_VOICECALL);

I imagine this is also possible via and XML settings, if anyone knows of this I’d be very grateful to know how!

26 Comments
  1. scheich permalink

    thx

  2. Thanks. That’s been bugging me for a while. Play testers kept saying “It doesn’t make sense!!!! Volume this, volume that.”
    Not much on-line to help with this issue either.

  3. Tom permalink

    Cheers for this tip, I was looking for something this simply explained in the android SDK!

  4. If you need to reset the volume control back to the default, there is one other value you can use:

    this.setVolumeControlStream(AudioManager.USE_DEFAULT_STREAM_TYPE);

  5. @Jarcikon, good tip, thanks

  6. Thanks so much! This has also been bugging me and there isn’t anything online I could find!

  7. Wow that’s easy.
    Thanks for the tip.
    First hit on Google.

  8. Sonja permalink

    Thanks! And if you want to just have maximum media volume when your application is started, use

    AudioManager audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
    audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0);

    in your onResume() (and good practie would be to turn it down in onPause()), where the last param “flags” (here 0) sets how this change should be indicated, 0 means “not”, AudioManager.FLAG_PLAY_SOUND for example plays some beep at the new volume level!

  9. Sonja permalink

    Forgot to say, AudioManager.STREAM_MUSIC is the one that sets”Music/video volume”, might be helpful

  10. Miguel permalink

    Just wanted to say thanks for this, just what I was searching for :)

  11. Rob permalink

    Thanks. Exactly what I was looking for.

  12. Andy permalink

    i’ve been looking for this for a while, thx

  13. Maj. permalink

    That really helped. Thanks!

  14. Diego permalink

    Great!

    It would be useful if this was possible through xml too… but didn’t found anything.

    Anyone knows if it’s possible?

  15. zas permalink

    Thanks!

  16. Thanks, really useful!

  17. Jose Diaz permalink

    I have a HTC Android (MyTouch) and when i tabbed the screen ad press the volume up the media volume came up….and every time i got a call it was making a noise….

    The Solution if anybody need it IS::::::::::>>>>>>>Go to settings >>>when you’re in settings go to Accessibility>>>>>>>>>When you’re in there all you have to do is UN CLICK the SOUND BACK……>>>>>and the problem would be resolved……

  18. Jose Diaz permalink

    Hope Works for other people cause it worked for me……!!!!!!!!

  19. Thanks for the post… now off to the next problem!!!

  20. カヲル permalink

    Nice tip! It really helped me a lot, thank you!

  21. Thank you!!! I don’t know why I hadn’t searched for this before.

  22. John permalink

    And on the 8th day he posted about media volumes…….damn this is good, explains what I was missing, simply. Damn awesome.

    PS You should have a paypal donate button for appreciation, people want to show their thanks when you do things like this

  23. Thanks a lot.
    “hopefully this post will help people with the same problem” –> YES IT IS!!

  24. PFFB permalink

    THANKS THANKS THANKS THANKS * 1.000.000.000.000³.

Trackbacks & Pingbacks

  1. Change the volume control on your activity | Independently Employed
  2. Leading Makes & Models Of Headphones | What Headphones ?

Leave a Reply

Note: I am currently writing my thesis so probably wont have time to reply to your comment
Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS