我正在开发一个应用程序,它记录麦克风的输入,同时必须能够通过扬声器播放 MP3 文件。
我需要取消 MP3 文件的回声。我尝试过使用 AcousticEchoCanceler,但它没有用。
现在我已经在我的项目中集成了 speex 库。EchoCanceller 函数界面如下所示:
public native static short[] process(short[] inputFrame, short[] echoFrame);
问题是我不知道如何获取“echoFrame”(当前播放 MP3 文件的数据)。我正在使用 MediaPlayer 播放它。
是否可以从 MP3 文件中取消回声?或者我必须将 MP3 转换为 PCM 并通过 SoundTrack 播放?谢谢阅读。