2012-05-11 23 views
27

我一直在致力于一个项目,该项目将大大受益于调用流修改。这已被多次表示/认为是不可实现的,因为大多数人认为通话音频的硬件环路与设备的主MCU完全断开连接。在Android 4.0中调用音频流修改ICS

Stream audio to a phone call Android这样的问题已经收到答案,说明无法访问音频。我同意这从Android API绝对不可能,但完全不清楚硬件ACTUALLY是否完全断开连接。

的计算器用户artsylar“说,他们能够修改Android操作系统的“框架层”注入录制的音频为呼叫流,这将是一个巨大的进步(见Play an audio clip onto an ongoing call,所选答案artsylar的评论)。假设artsylar的成功是有效的,那么肯定有办法通过修改框架来控制调用流音频(我假定Android源中的电话基础框架)。

基本上,我完全同意从应用程序层修改或控制调用流是不可能的。不过,我有兴趣在框架或无线电接口层中定制Android OS; artsylar似乎取得了成功,但在开放文献中没有解释如何。鉴于Android技术的当前状态,有没有人能够澄清上述事实,通过修改核心Android操作系统来实际确定是否可以控制通话音频,并且实现此目标的一条好路径?

我相信对这个问题的最终澄清对于开源社区是非常有价值的。

谢谢!

+1

您是否设法修改了通话流? – B770

+1

研究的现状是什么? –

回答

5

这样做很困难,因为它涉及到在Android OS中处理Linux Kernal。

不仅没有API支持,而且安全问题也不允许这样做。

作为软件工程领域的专业人士,尤其是程序员,我们 永远不会假定任何人的发明成功和相关的项目是有效的,直到项目正在测试。

还流在通话过程中音频可以调用的隐私和安全问题上的智能手机用户之间的问题和电​​话的服务提供商

+1

Linux内核?不。硬件支持也是必不可少的,因为手机使用(麦克风 - >基带处理器,麦克风 - >操作系统)双链,而不是(麦克风 - >操作系统 - >基带,因为它可以预期).. –

+0

@ kagali-san如果你说它就像“麦克风 - >基带处理器”,那么蓝牙耳机的工作原理是什么?所以我认为你是对的,它更像是“麦克风 - >操作系统 - >基带”。 – 2014-01-10 16:22:27

+3

@André,它的记录很少,但没有 - 蓝牙传输也可以通过片上传输工作。你可以谷歌一堆中文MT6575,MT6589和相应的无线芯片MT6627,MT6627的一些数据表和方案/图 - 我猜芯片之间的MRGPCM通道是音频传输路径。还有一种叫DAIBT的东西,中国人在某些方案中用来指定声音处理部件。 更重要的是,有些手机甚至不会镜像发送到基带的麦克风音频。 –

11

这在技术上是可能注入音频到某些平台上的语音呼叫的上行链路(高通例如MSM8960和APQ8064)。支持存在于硬件级别和设备驱动程序级别。但是为了使该功能可用于普通应用程序,您必须创建一个定制的Android ROM,您已经在Android的Java层和本机层中添加了所有必需的用户空间部分。

所以简短的回答是:不,没有标准的方法来做这个应用程序开发人员(如果您使用SDK或NDK无关紧要)。
如果您正在为OEM或通过其他方式工作而能够构建并刷新自己的Android ROM,则可以通过询问平台供应商获取所需的信息。