无法在MediaPlayer上初始化AudioEffect(LoudnessEnhancer)(API 19)

时间:2014-04-28 13:37:54

标签: java android android-mediaplayer android-audiorecord audioflinger

我尝试在AudioEffect上使用各种AudioRecord/MediaPlayer类,并且每当我调用AudioEffect类的新对象时,我每次都会收到同样的错误。我收到以下错误 -

04-28 18:31:06.571: **E/AudioEffect(6688): set(): AudioFlinger could not create effect, status: -22**
04-28 18:31:06.571: **E/AudioEffects-JNI(6688): AudioEffect initCheck failed -4**
04-28 18:31:06.571: **E/AudioEffect-JAVA(6688): Error code -4 when initializing AudioEffect.**

例如,我编写了以下代码,其中我创建了MediaPlayer类的对象,并将包含我的mp3录制的输出文件发送到setDataSource函数。然后根据android api文档http://developer.android.com/reference/android/media/audiofx/LoudnessEnhancer.html我应该将音频会话id发送到LoudnessEnhancer对象的构造函数。我还将Target Gain设置为100并且setEnabled为true。

MediaPlayer m = new MediaPlayer();
m.setDataSource(outputFile);

int sessionID=m.getAudioSessionId();
AudioEffect effect=new LoudnessEnhancer(sessionID);
((LoudnessEnhancer) effect).setTargetGain(100);
((LoudnessEnhancer) effect).setEnabled(true);

m.prepare();
m.start();

注意 :每当我调试代码时,只要它遇到LoudnessEnhancer的构造函数,我就会收到一条消息,指出Source not attached。所以我检查了windows-> preferences-> java->安装的jre,它显示了正确的路径。但是在我的项目中 - > BuildPath->配置构建路径 - >库当我选中本机库位置时,路径显示无。如果需要的话,我不知道要包含哪条路径

我的项目是否有可能无法找到实例化AudioEffect类构造函数所需的某些源?

请提出建议..

0 个答案:

没有答案