我正在尝试构建一个简单的 red5-flash 应用程序,两个人可以在其中相互交谈。我有两个用于 A 和 B 的 Flash 播放器,每个都有一个发布者部分(接收实时网络摄像头并将其发送到 red5 服务器,进行记录和发布)和一个查看器部分(从 red5 获取对方的流并播放)。
问题:我正在通过 getEnhancedMicrophone 使用 Adobe 的声学回声消除。它带来了显着的改善并减少了回声,A 和 B 的谈话没有回声 - 这很好 - 但是当我在服务器机器上播放录制的版本时,回声仍然存在。
问题1:这怎么可能?任何可能的解决方案?
问题 2: Adobe AEC 实际是如何工作的?
它是否使用某种比较方法将反馈过滤到麦克风中(淡出从音频输出出来的音频,并再次通过输入进入)?
或
它是否像这样比较输入 - 2 向 1 发送一些东西,发生反馈,并且 1 向 2 发送“回声”(当然通过 red5 并因此被记录) - 2 接收回声并通过将其与什么进行比较来过滤它它发送得更早等等?