Jul*_*lia 7 java android equalizer android-fragments audioeffect
我在这行代码上的均衡器上遇到UnsupportedOperationException错误.bassBoost.setStrength((short) bassBoostPos);
这是代码
equalizer = new Equalizer(0, 0);
if (equalizer != null) {
equalizer.setEnabled (isEqualizer);
numBands = equalizer.getNumberOfBands();
short r[] = equalizer.getBandLevelRange();
minLevel = r[0];
maxLevel = r[1];
bassBoost = new BassBoost (0, 0);
if(bassBoost != null) {
bassBoost.setEnabled(bassBoostPos > 0 ? true : false);
bassBoost.setStrength((short) bassBoostPos);
}
Run Code Online (Sandbox Code Playgroud)
这是例外
java.lang.UnsupportedOperationException: AudioEffect: invalid parameter
operation
at android.media.audiofx.AudioEffect.checkStatus(AudioEffect.java:1271)
at android.media.audiofx.BassBoost.setStrength(BassBoost.java:127)
Run Code Online (Sandbox Code Playgroud)
如何解决此问题,以便应用程序不会崩溃.我的意思是我如何检查设备是否支持此操作,如果它不支持,我会跳过这一行.谢谢.
在AudioEffect中,有3种类型的错误发生。
this occurs for your case。由于参数值错误,操作失败。它会导致IllegalArgumentException并给出错误"AudioEffect: bad parameter value"
操作失败,因为请求状态错误。它会导致UnsupportedOperationException并给出错误"AudioEffect: invalid parameter operation"
它发生在运行时。它给出了错误"AudioEffect: set/get parameter error"
Ans:均衡器处理完成后,如果不调用该release()方法,就会出现错误的状态。所以释放均衡器对象后使其等于null。
如果您使用 api 级别 25,则更改它。这个错误大多发生在这个级别。所以,如果可能的话,改变它。
有时本机库不允许实例化新的 AudioEffect。因为那里已经存在太多对象。它还会导致错误的状态。
| 归档时间: |
|
| 查看次数: |
850 次 |
| 最近记录: |