首页 > 解决方案 > Android PresetReverb 和 EnvironmentalReverb 不起作用

问题描述

我认为我已阅读有关此问题的所有内容,但尚未找到有效的答案。那么任何人都可以帮助向媒体播放器添加混响吗?这是我添加 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()

并添加环境混响

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

还添加了权限

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

所以我尝试使用 getAudioSessionId(),尝试了 audiosession 0 和 1,两者都没有产生混响。当我写mediaPlayer.prepare()的时候,应用程序崩溃了。Logcat 中没有错误。也许还有另一种创建混响的方法?

标签: androidkotlinandroid-mediaplayeraudioeffect

解决方案


推荐阅读