我试图通过AudioEffect设置AudioEffect::setParameter参数,但是在Android中会出现编译错误。
这是我的代码:
import android.media.audiofx.Equalizer;
...
private Equalizer mEqualizer = null;
mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());
mEqualizer.setParameter(0,0);这在我以前的Eclipse项目中有效;现在我正在使用一个新的AS项目,但是它给出了一个错误:无法找到符号方法setParameter(int,int)
我还尝试通过setParameter()对象调用AudioEffect:
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的源代码:
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中调用这个方法吗?(但它在Eclipse中工作)。
Android版本2.1.2使用Android 23 (也尝试了SDK 22和21,同样的错误)。
发布于 2016-06-14 04:46:01
根据文档,类AudioEffect中没有方法setParameters,我在那里也看不到EFFECT_TYPE_NULL类型。我也签了我的sdk。你一定是在使用过时的代码。请将其重构为最新的SDK。AudioManager有一个方法setParamters(字符串keyValuePairs)。这对你有用。
https://stackoverflow.com/questions/37803013
复制相似问题