0

I have created an MP3 player in a Xamarin project, and it plays great. I have added the ability to adjust the Pitch and Speed, but I cannot get the Reverb effect to take to my MediaPlayer.

I have found various examples in Kotlin and Java of the code required to create both PresetReverb and EnvironmentalReverb methods to achieve this.

While my C# code runs and produces no errors, the Reverb effect will not apply using either method. I am new to Xamarin and Android, so I am hoping to get some help.

Here is my code.

MediaPlayer _mediaPlayer = new MediaPlayer();

AssetFileDescriptor fd = global::Android.App.Application.Context.Assets.OpenFd(fileName);

#region REVERB

PresetReverb presetReverb = new PresetReverb(1, 0); // was set to _mediaPlayer.AudioSessionId
presetReverb.Preset = PresetReverb.PresetLargeroom;
presetReverb.SetEnabled(true);
_mediaPlayer.AttachAuxEffect(presetReverb.Id);
_mediaPlayer.SetAuxEffectSendLevel(1.0f);

#endregion

_mediaPlayer.SetDataSource(fd.FileDescriptor, fd.StartOffset, fd.Length);
_mediaPlayer.Prepare();
_mediaPlayer.Start();

Any ideas/advice would be greatly appreciated.

4

1 回答 1

1

You could try Audio session 0 instead of the AudioSessionId

  PresetReverb presetReverb = new PresetReverb(1, 0);
            presetReverb.Preset = PresetReverb.PresetLargehall;
            presetReverb.SetEnabled(true);
            _mediaPlayer.AttachAuxEffect(presetReverb.Id);
            _mediaPlayer.SetAuxEffectSendLevel(1.0f);
于 2021-03-24T07:20:06.333 回答