3

所以我正在尝试开发一个 android VoIP 应用程序。我在进行回声消除工作时遇到了麻烦,并且在扬声器模式下仍然可以听到自己说话。

AudioRecord recorder = new AudioRecord(
                MediaRecorder.AudioSource.VOICE_COMMUNICATION, mSampleRate,
                AudioFormat.CHANNEL_IN_MONO,
                AudioFormat.ENCODING_PCM_16BIT, bufferSize);

echoCanceler = AcousticEchoCanceler.create(recorder.getAudioSessionId());
                echoCanceler.setEnabled(true);

我尝试将设置更改为CHANNEL_IN_STEREO. 将播放设置更改为MODE_IN_COMMUNICATON但仍然没有运气。

我使用三星 S7 和 Nexus 5 进行测试。

4

1 回答 1

1

Android 上的回声消除不是一项简单的任务,特别是如果您想支持多部手机和多个 Android 版本。从阅读回声消除的行为和挑战开始。然后,您可以尝试开源解决方案(例如 Speex)。如果开源不起作用,那么您应该寻找专业的回声消除。只需谷歌搜索回声消除软件。

于 2018-08-19T09:09:49.423 回答