Reputation: 5308
I am using the following code to play audio file. I have tested the audio file on Android phone player & its playing quite loud. When I am trying to play the same audio file from the following code , its very feeble. Is there any problem with my code ? Can I increase the volume of the media file by changing any value ?
While testing , the volume of the Android device has been put to maximum value.
Kindly provide your inputs/sample code. Thanks in advance.
public void playAlertSound() {
MediaPlayer player = MediaPlayer.create(this, R.raw.beep);
player.setLooping(false); // Set looping
player.setVolume(0.90f, 0.90f);
// Begin playing selected media
player.start();
// Release media instance to system
player.release();
}
Upvotes: 1
Views: 475
Reputation: 44919
You shouldn't call player.release()
immediately. Try calling that in your onPause()
or onDestroy()
methods instead.
You might try using AudioManager.getStreamMaxVolume() to get the maximum volume and use it:
AudioManager audio =
(AudioManager) Context.getSystemService(Context.AUDIO_SERVICE);
int max = audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
player.setVolume(max, max);
I'm not sure though if setVolume()
expects absolute levels or multipliers from 0.0f
to 1.0f
. It mentions logarithmic adjustment, so you might try something closer to 1.0f like 0.95f
or 1.0f
itself.
Upvotes: 0
Reputation: 38075
Try player.setVolume(1.0f, 1.0f);
instead; or just leave off that line entirely. You can also try scaling up the value past 1.0, although that's not really recommended.
Upvotes: 1