编译错误:在Android Studio中找不到符号AudioEffect :: setParameter

时间:2016-06-14 04:28:48

标签: android android-studio

我尝试按AudioEffect设置AudioEffect::setParameter参数,但它在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 \机器人-23 \机器人\媒体\ audiofx \ Equalizer.java:

public class Equalizer extends AudioEffect {

Android的SDK \机器人-23 \机器人\媒体\ 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,同样的错误)。

1 个答案:

答案 0 :(得分:0)

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