Я написал ниже код в методе onCreate активности.
MusicPlayer.getEqualizerHelper().getCurrentEqualizer().usePreset((short) 0); --- line no 1
short numberFrequencyBands = MusicPlayer.getEqualizerHelper().getCurrentEqualizer().getNumberOfBands();--- line no 2
final short lowerEqualizerBandLevel = MusicPlayer.getEqualizerHelper().getCurrentEqualizer().getBandLevelRange()[0];--- line no 3
и он отлично работает во всех андроидах o.s ниже nougat. Когда я устанавливаю свое приложение на устройстве nougat, он выдает исключение в строке № 1. Пожалуйста, предложите мне, где проблема и решение для него. Спасибо заранее
FATAL EXCEPTION: главная Процесс: com.ag.musicplayer, PID: 15039 java.lang.RuntimeException: невозможно запустить активность
ComponentInfo {com.ag.musicplayer/com.ag.musicplayer.activity.EqualizerActivity}: java.lang.UnsupportedOperationException: AudioEffect: недействительный работа с параметрами в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12 (ActivityThread.java) в android.app.ActivityThread $H.handleMessage(ActivityThread.java:1460) на android.os.Handler.dispatchMessage(Handler.java:102) на android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) в java.lang.reflect.Method.invoke(собственный метод) в com.android.internal.os.ZygoteInit $MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Вызывается: java.lang.UnsupportedOperationException: AudioEffect: неправильная операция параметров в android.media.audiofx.AudioEffect.checkStatus(AudioEffect.java:1273) at android.media.audiofx.Equalizer.usePreset(Equalizer.java:335) в com.ag.musicplayer.activity.EqualizerActivity.onCreate(EqualizerActivity.java:287) at android.app.Activity.performCreate(Activity.java:6664) в android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) в android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599) в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12 (ActivityThread.java) в android.app.ActivityThread $H.handleMessage(ActivityThread.java:1460) на android.os.Handler.dispatchMessage(Handler.java:102) на android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) в java.lang.reflect.Method.invoke(собственный метод) в com.android.internal.os.ZygoteInit $MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Я точно не знаю, почему он бросает ошибку в Nougat, но одна из возможных причин заключается в том, что не может быть предустановленной. Поэтому, чтобы убедиться, что вы можете сначала проверить, доступен ли какой-либо пресет или нет, используйте getNumberOfPresets()
.