我尝试使用AudioRecord
接收来自耳机麦克风的音频,并使用AudioTrack
实时播放耳机。我已经实现了所需的代码,但问题是存在干扰回声。我没有使用扬声器,我正在使用耳机。那么,什么造成这种回声?我使用了在API级别11中引入的设备回声消除器,并且回声降低但未消失。我知道audio latency in android设备,但我无法理解延迟是否会在使用耳机时导致回声。请指导我正确的方向。实时播放接收到的声音时的声音回声
4
A
回答
1
我不认为有这个问题的通用解决方案。 原因是
1)耳机质量可能是坏的,有可能是麦克风和耳机之间的内部耦合的导线在耳机非常接近
2)在机器人的回波消除器不强制由所有设备实施。先尝试查询并设置。 3)回声消除器的实现可能因设备而异实施
3)等待时间会影响回声消除器的性能很多,因为算法必须适应延迟并缓冲那么多音频。
4)较低的Android版本都通过谷歌自己也承认可怕的延迟问题。你可能想要移动到更高的Android版本,因为这些东西已经大大改善。
一般而言,任何具有直接硬件访问功能的API(如麦克风和相机)都会因设备的不同而有所不同,并且性能无法得到保证。
如果您正在考虑整合,您可能需要查看openSLES以获得更好的音频性能,并且更容易与AEC库集成。
请看 - https://source.android.com/devices/latency_design.html Low-latency audio playback on Android https://www.youtube.com/watch?v=d3kfEeMZ65c
希望这有助于
问候, Shrish
相关问题
- 1. 声音播放和播放声音
- 2. 播放声音当接收到消息
- 3. Java声音。暂时静音背景音乐并播放声音
- 4. c中声音播放后的声音#
- 5. 没有播放声音时
- 6. 同时播放声音Android
- 7. 播放声音?
- 8. 播放声音
- 9. 播放声音
- 10. 播放声音
- 11. 播放声音
- 12. 播放声音
- 13. 如何从声音的开始播放/暂停声音和声音播放?
- 14. 在播放声音时录制音频
- 15. 在录音时播放声音
- 16. 另一个声音开始播放时的Java停止声音
- 17. java中的声音 - 播放声音时游戏会冻结
- 18. ios AVAudioPlayer播放声音与回声
- 19. 使用系统声音播放声音
- 20. 播放声音作为系统声音
- 21. 当另一个声音播放时停止播放先前的声音
- 22. 咆哮jQuery播放新声音时会停止所有声音
- 23. WPF播放声音定时器刻度 - 不重复声音
- 24. 未播放声音
- 25. 在播放声音
- 26. 声音未播放
- 27. VC++播放声音
- 28. Ruby声音播放
- 29. 声音未播放
- 30. Javascript播放声音
加力:做ü找到任何解决办法,同样PBLM发生在我身边 – Pradeep 2014-04-10 10:45:31
经过不断我花了很多时间,我只是接受了它的必然性,而没有办法处理它。 – 2014-04-14 16:49:13