Rohit Singhal
Rohit Singhal

Reputation: 381

Android: MediaPlayer setVolume function not working

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

Answers (3)

Georges
Georges

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

Nitin Misra
Nitin Misra

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

Lennon Spirlandelli
Lennon Spirlandelli

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

Related Questions