2012-03-12 71 views
4

我正在搜索有关如何在Android上操作音频的选项。目标是在通话期间实时处理来自麦克风的音频。最好的解决方案是通过本地电话进行。但重建电话应用程序(无VOIP)也可以。有没有什么方法可以通过Android API实现这一点(也没有文档)? 如果不是,哪些步骤将是必要的事情运行?Android:操纵电话中的语音

在iOS上有一些应用程序操纵语音,但创建一个VOIP连接。我听说在Android上,你可以“克隆”电话应用程序,并最终用自己的音频流提供它?在通话过程中没有添加噪音的应用程序吗?涉及哪些类型的API?

回答

4

最好的解决方案是在本地调用上做到这一点。

这是不可能的。您可能无法访问通话中的音频流,除了免提模式。

但重建电话应用程序(无VOIP)也可以。

来自Google(2010)的最后一个官方词汇,整个操作系统都无法访问通话中的音频流,因为它都是在较低级别处理的。即使新版Android可以访问通话音频流,但只有在创建自定义固件时才能“重建电话应用程序”。

+0

所以,你会说,即使手机已经扎根,也没有办法抓住它吗? – Jan 2012-03-12 22:43:59

+0

@kuq:同样,AFAIK,整个OS都无法访问通话音频流。生根不会改变这一点。 – CommonsWare 2012-03-12 22:44:52

+0

然后我可以访问哪一层?我读过HAL(硬件抽象层),但不知道是否有任何成功的变化。 – Jan 2012-03-13 19:06:30

0

作为一个缺点,我可以想象使用MediaRecorder API记录下行流并使用AudioTracks write()方法将其写回硬件。通过这个我可以操纵传入的声音。但我仍然认为这在电话通话中不起作用。我没有看到选择不同硬件目的地的方法。