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();