3

I think that I read everything about this problem but haven't found a working answer. So can anybody help with adding reverb to mediaplayer? Here is my code adding PresetReverb

mediaPlayer = MediaPlayer.create(this, R.raw.song)
val presetReverb = PresetReverb(1, 0)
presetReverb.preset = PresetReverb.PRESET_LARGEHALL
presetReverb.enabled = true
mediaPlayer.attachAuxEffect(presetReverb.id)
mediaPlayer.setAuxEffectSendLevel(1.0f)
mediaPlayer.start()

and adding EnvironmentalReverb

mediaPlayer = MediaPlayer.create(this, R.raw.song)
environmentalReverb = EnvironmentalReverb(0, 0)
environmentalReverb.decayTime = 2000
environmentalReverb.reflectionsDelay = 250
environmentalReverb.reflectionsLevel = -8500
environmentalReverb.roomLevel = -8500
mediaPlayer.attachAuxEffect(environmentalReverb.id)
environmentalReverb.enabled = true
mediaPlayer.setAuxEffectSendLevel(1.0f)
mediaPlayer.start()

Also permission was added

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

So I tried using getAudioSessionId(), tried audiosession 0 and 1, both of which didn't create a reverb. When I wrote mediaPlayer.prepare(), the application crushed. There is no error in Logcat. Maybe there is another method to create reverb?

  • Did you find any solution to this issue? I have spent months trying to figure out this bug. If I remember correctly, this was working perfectly fine when I implemented this in 2017 in my music play app. But now, it never works. Do let us know if you find anything. :D – Rishabh Sagar Jun 01 '21 at 21:47

1 Answers1

0

I found the problem lies in the volume of the player which masks the reverb effect. The solution is to lower the volume of the player to something like 0.5 or even 0.0 then increase global device volume.

mediaPlayer = MediaPlayer.create(this, R.raw.song)
val presetReverb = PresetReverb(1, 0)
presetReverb.preset = PresetReverb.PRESET_LARGEHALL
presetReverb.enabled = true
mediaPlayer.attachAuxEffect(presetReverb.id)
mediaPlayer.setAuxEffectSendLevel(1.0f)
mediaPlayer.setVolume(0.0f,0.0f);
mediaPlayer.prepare();
mediaPlayer.start()
Taiti
  • 375
  • 2
  • 6