Reputation: 381
I am trying to play sound via media player on STREAM_SYSTEM
using
mediaPlayer.setVolume(1.0f , 1.0f);
or
mediaPlayer.setVolume(0.90f , 0.90f);
But it is playing on vol as per Hardware volume controls in settings.
Basically this line has no effect.
I have added
permissions "Modify..." as well in Manifest
But i saw links in stackoverflow where this API works.
I don't wanna go to API
AudioManager.setStreamVol()....
as it sets stream vol for all apps
What is problem that this setVol API is not working??
Can anybody give a link to working sample??
Upvotes: 6
Views: 14135
Reputation: 317
I faced the same issue. I thought that if I use 0.5f as parameter, I could tell the difference. I tried 0.2f, still no difference. So I thought there was a problem indeed. I finally tried 0.02f just in case, and finally I had a lower volume.
Sample:
replace your
mediaPlayer.setVolume(0.90f , 0.90f);
with
mediaPlayer.setVolume(0.09f , 0.09f);
Upvotes: 13
Reputation: 4522
AudioManager audioManager;
int actualVolume;
audioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
actualVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, actualVolume + 1, AudioManager.FLAG_SHOW_UI);
The above code is taken from my working project, where it is used to increase the volume of the system (I used it for TV). You can use actualVolume - 1
to lower down the volume.
Upvotes: 0
Reputation: 3193
You must put the volume value between 0.0f and 1.0f. So 1.0f is 100% of the volume. Because of that your line has not effect.
Upvotes: 2