【问题标题】:Compile error: Cannot find symbol AudioEffect::setParameter in Android Studio编译错误:在 Android Studio 中找不到符号 AudioEffect::setParameter
【发布时间】:2016-06-14 04:28:47
【问题描述】:

我正在尝试通过AudioEffect::setParameter 设置AudioEffect 参数,但它在Android Studio 中给出了编译错误。

这是我的代码:

import android.media.audiofx.Equalizer;
...
private Equalizer mEqualizer = null;
mEqualizer = new Equalizer(0,  mMediaPlayer.getAudioSessionId());
mEqualizer.setParameter(0,0);

这在我的旧 Eclipse 项目中有效;现在我正在使用一个新的 AS 项目,但它给出了一个错误:找不到符号方法 setParameter(int,int)

我也尝试通过 AudioEffect 对象调用setParameter()

import android.media.audiofx.AudioEffect;

AudioEffect effect = null;
effect = new AudioEffect(AudioEffect.EFFECT_TYPE_EQUALIZER,
                AudioEffect.EFFECT_TYPE_NULL,
                0,
                0);

effect.setParameter(0,0);

然后得到同样的错误。

以下是 Android SDK 的源代码:

android-sdk\android-23\android\media\audiofx\Equalizer.java:

public class Equalizer extends AudioEffect {

android-sdk\android-23\android\media\audiofx\AudioEffect.java:

public class AudioEffect {
...
    public int setParameter(int param, int value) throws IllegalStateException {
        byte[] p = intToByteArray(param);
        byte[] v = intToByteArray(value);
        return setParameter(p, v);
    }

有谁知道我为什么不能在 Android Studio 中调用这个方法? (但它在 Eclipse 中有效)。

Android Studio 版本 2.1.2 使用 Android SDK 23(也试过 SDK 22 和 21,同样的错误)。

【问题讨论】:

  • Android 不使用 Java 8 的双冒号,所以我不确定您为什么在问题中包含它

标签: android android-studio


【解决方案1】:

根据documentationAudioEffect 类中没有方法setParameters,我也看不到类型EFFECT_TYPE_NULL。我也检查了我的sdk。您必须使用过时的代码。请将其重构为最新的 SDK。 AudioManager 有一个方法 setParamters(String keyValuePairs)。它可以为您所用。

【讨论】:

  • 谢谢你,我认为你是对的。即使我在 AudioEffect.java 中没有看到任何“已弃用”,并且这仍然适用于带有 SDK 23 的 Eclipse。我将尝试在文档中声明的其他设置方法。
猜你喜欢
  • 2018-11-20
  • 2019-11-16
  • 2011-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多