【问题标题】:Equalizer not always supported, even when api >= 9?即使 api >= 9 也不总是支持均衡器?
【发布时间】:2012-05-19 03:41:15
【问题描述】:

在启用均衡器功能之前,我会检查 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)

我不知道是否有解决方案,如果没有,我可以捕获这些异常并禁用均衡器,但我需要知道究竟是什么导致了这种情况,这样我就可以通知我的用户而不会让他们感到沮丧。

感谢您的帮助

【问题讨论】:

  • 在 api 级别 25 上遇到同样的错误,您找到任何解决方案了吗?

标签: android operation equalizer audioeffect


【解决方案1】:

我也遇到了同样的问题,这是由于我完成后没有在我的均衡器上调用 release() 引起的。显然,如果已经存在太多,则本机库将不允许实例化新的 AudioEffect。

【讨论】:

  • 我在初始化均衡器的同一个类中添加了版本,并且我的应用程序在除 api 级别 25 之外的所有设备上都可以正常工作。它因异常 java.lang.UnsupportedOperationException: AudioEffect: 而崩溃:无效的参数操作所以我在下面的链接上问了一个问题stackoverflow.com/questions/40967977/…
猜你喜欢
  • 2011-08-08
  • 1970-01-01
  • 2023-04-10
  • 2017-01-13
  • 2012-05-02
  • 2016-07-25
  • 1970-01-01
  • 1970-01-01
  • 2013-08-06
相关资源
最近更新 更多