android - 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 中没有错误。也许还有另一种创建混响的方法?
解决方案
推荐阅读
- angular - 根据单选按钮值动态禁用角垫单选复选框
- java - 非 html 方法 Spring MVC
- git - 排除 ftp-deploy 中的密钥故障
- c# - Xamarin Forms 在 Shell 页面内显示选取器
- http - 一个电子邮件应用程序使用不同的端口
- mongoose - Graphql 使用猫鼬解析信息
- python - AttributeError:“NoneType”对象在 Python 3 中使用 beautifulsoup 没有属性“get”
- javascript - Javascript“addEventListener”函数在页面加载时自动触发
- c# - 为什么我在扩展方法中的 `char` 参数被解释为 `int`?
- javascript - blob.text() 的逆运算