首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.UnsupportedOperationException: AudioEffect: Android上的无效参数操作异常(7.0)

java.lang.UnsupportedOperationException: AudioEffect: Android上的无效参数操作异常(7.0)
EN

Stack Overflow用户
提问于 2016-12-05 06:01:10
回答 2查看 1.8K关注 0票数 1

我用onCreate活动方法编写了下面的代码。

代码语言:javascript
复制
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

在所有低于nougat的android o.s中,它都运行得很好。当我在nougat设备上安装我的应用程序时,它会在1号线上抛出异常。请给我建议问题所在和解决方案。提前感谢

致命异常:主进程: 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) at android.app。ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154)在android.app.ActivityThread.main(ActivityThread.java:6077) at 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)中无效的参数操作在android.media.audiofx.Equalizer.usePreset(Equalizer.java:335) at com.ag.musicplayer.activity.EqualizerActivity.onCreate(EqualizerActivity.java:287)在android.app.Activity.performCreate(Activity.java:6664) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599) at 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.app.ActivityThread.main(ActivityThread.java:6077)的android.os.Looper.loop(Looper.java:154)在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)的java.lang.reflect.Method.invoke(本地方法)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

EN

回答 2

Stack Overflow用户

发布于 2016-12-05 06:14:32

我不太清楚为什么它会在努格特上抛出错误,但一个可能的原因是可能没有预设。因此,为了确保您可以首先检查是否有可用的预置,是否使用getNumberOfPresets()

票数 0
EN

Stack Overflow用户

发布于 2018-08-19 13:21:56

如果您在自定义ROM (以及使用系统均衡器的其他遗留rom )上运行,则必须禁用音频会话id的系统均衡器:

代码语言:javascript
复制
    private  void unbindSystemEqualizer(int audioSessionId) {
    Intent intent = new Intent(AudioEffect.ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION);
    intent.putExtra(AudioEffect.EXTRA_AUDIO_SESSION, audioSessionId);
    intent.putExtra(AudioEffect.EXTRA_PACKAGE_NAME, mContext.getPackageName());
    mContext.sendBroadcast(intent);
}

请确保您的自定义均衡器已启用,并且在启动广播意图之前设置是可用的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40967977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档