【发布时间】: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 的双冒号,所以我不确定您为什么在问题中包含它