安卓手机:在电话中操作语音

5
我目前正在寻找在安卓上操作音频的方法。目标是在电话通话期间实时处理来自麦克风的音频。最好的解决方案是在本机通话中实现这一点。但是,重建一个电话应用程序(没有VOIP)也可以。是否有任何使用Android API(也未记录在案)实现此目的的方法?如果没有,需要哪些步骤才能让事情正常运行?
在iOS上,有一些应用程序可以操纵声音,但会创建VOIP连接。我听说在Android上你可以“克隆”电话应用程序,并最终向其提供自己的音频流?难道没有添加噪音的应用程序吗?涉及哪些API?
2个回答

4

最好的解决方案是使用本地调用。

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

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

来自 Google 的最后官方消息(2010 年)是,整个操作系统没有访问通话中的音频流,因为所有处理均在较低级别上处理。即使新版本的 Android 有访问通话中的音频流的权限,“重建电话应用程序”也只有在创建自定义固件时才有可能。


那么你的意思是,即使手机已经被root了,也没有办法获取它? - Jan
@kuq:据我所知,整个操作系统都无法访问通话中的音频流。 获取 Root 权限也无法改变这一点。 - CommonsWare
那么我可以在哪一层访问它?我读过HAL(硬件抽象层)的相关内容,但不确定是否有任何成功的可能性。 - Jan
@kuq:“那我在哪一层可以访问它?”-- 我不知道。StackOverflow是用于软件开发,而不是硬件开发。 - CommonsWare
是的,这就是为什么我在问“抽象”层的原因! - Jan
@CommonsWare 什么是固件? - dharmendra

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接