Skip to content
Advertisement

Android MediaPlayer volume is very low ( already adjusted Volume )

I m using the MediaPlayer to play one of the internal alarm ringtone. i m using the setVolume(1.0f, 1.0f) to maximize the volume when the ringtone is played. but the ringtone doesn’t play full volume ( when I compare it to playing the ringtone separately or through the built it android alarm)

here is my code

mediaPlayer.setDataSource(context, ringtoneUri);
mediaPlayer.setLooping(looping);
mediaPlayer.setVolume(1.0f, 1.0f);
mediaPlayer.prepare();
mediaPlayer.start();

I added the following permission android.permission.MODIFY_AUDIO_SETTINGS ( not sure if this is needed )

Any Idea why the mediaPlayer still won’t play the sound at maximum?

Advertisement

Answer

Here is the solution I found.

AudioManager amanager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
int maxVolume = amanager.getStreamMaxVolume(AudioManager.STREAM_ALARM);
amanager.setStreamVolume(AudioManager.STREAM_ALARM, maxVolume, 0);

MediaPlayer mediaPlayer= new MediaPlayer();

mediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); // this is important.

mediaPlayer.setDataSource(context, ringtoneUri);
mediaPlayer.setLooping(looping);  
mediaPlayer.prepare();
mediaPlayer.start();
User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement