我尝试按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,同样的错误)。
答案 0 :(得分:0)
根据documentation,类setParameters
中没有方法AudioEffect
,我也看不到类型EFFECT_TYPE_NULL
。我也检查了我的sdk。您必须使用过时的代码。请将其重构为最新的SDK。 AudioManager有一个方法setParamters(String keyValuePairs)。它可以是你的用途。