在这行代码上,我的均衡器出现了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);
}
这里是异常信息
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)
我应该如何修复这个问题,使应用程序不会崩溃?我的意思是如何检查设备是否支持这个操作,如果不支持,我就跳过这一行。谢谢。
UnsupportedOperationException
异常。客户端在调用该操作之前并不知道具体实现是否支持该操作。否则,它将必须了解所有现有(和未来的)具体实现。 - HenryAudioEffect
类,有时它们可以完美地工作,但有时它们不行,甚至在同一设备上也会抛出异常。 - Jan Heinrich Reimer