title: Android Media Player setVolume Issues
body: <p>Until now, I was setting my <code>MediaPlayer</code> volume by setting the stream volume. I don't want to do that anymore because it messes with user settings. I now take the value from a <code>SeekBar</code> (0 to 100) and do <code>valueFromSeekBar / 100</code> to get a <code>float</code> between 0 and 1 to use in <code>MediaPlayer.setVolume(float, float)</code>. </p>
  
  <p>The problem is that the volume level doesn't seem to change. Here is how I set up the <code>MediaPlayer</code>:</p>
  
  <pre><code>player.setAudioStreamType(AudioManager.STREAM_ALARM);
  player.setLooping(true);
  player.prepare();
  
  float alarmVolume = AudioUtils.getMediaPlayerScaledVolume(100, alarm.volume);
  if(NetworkUtils.isInCall(context)) {
      alarmVolume = IN_CALL_VOLUME;
  }
  mediaPlayer.setVolume(alarmVolume, alarmVolume); //I've even tried hardcoding 0.1f
  </code></pre>
  
  <p>No matter what I do, it seems like the value I put in <code>MediaPlayer.setVolume</code> gets ignored, and the volume of the stream (in this case the alarm stream) gets used instead. It's most noticeable when the stream volume is set to max, and I play two audio files, one with <code>MediaPlayer.setVolume(1f, 1f)</code> and the other with <code>MediaPlayer.setVolume(0.01f, 0.01f)</code>. They are almost indistinguishable from one another. I need a way for my users to be able to position the <code>SeekBar</code> at 1 and get a barely audible sound, or at 100 and have the max sound. Is this possible or am I gonna have to go back to messing with streams?</p>