作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在启用均衡器功能之前,我检查了 api 级别以确保它等于或大于 9。从我从用户那里得到的报告来看,似乎无论如何都会抛出一些异常:
代码 eq = new Equalizer(0, mp.getAudioSessionId())
可以提高:
Caused by: java.lang.UnsupportedOperationException: Effect library not loaded
at android.media.audiofx.AudioEffect.<init>(AudioEffect.java:355)
at android.media.audiofx.Equalizer.<init>(Equalizer.java:149)
代码eq.getBandLevelRange()
可以提高:
Caused by: java.lang.UnsupportedOperationException: AudioEffect: invalid parameter operation
at android.media.audiofx.AudioEffect.checkStatus(AudioEffect.java:1182)
at android.media.audiofx.Equalizer.getBandLevelRange(Equalizer.java:206)
我不知道是否有解决方案,如果没有,我可以捕获这些异常并禁用均衡器,但我需要知道究竟是什么导致了这种情况,这样我就可以通知我的用户而不会让他们失望。
谢谢你的帮助
最佳答案
我遇到了同样的问题,这是由于我在均衡器上完成时没有调用 release() 造成的。显然,如果现有的 AudioEffect 太多,原生库将不允许实例化新的 AudioEffect。
关于android - 并不总是支持均衡器,即使 api >= 9?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10536170/
我是一名优秀的程序员,十分优秀!