2011-03-11 49 views
9

我正尝试通过Android上的电话呼叫发送音频流。将音频流式传输至电话Android

例如,创建一个应用程序,可以播放一些自定义的保留音乐,或接听电话并播放录音/音频文件。我知道有可能让应用程序自动接听电话,但可以将音频发送给呼叫者吗?

如果可能,请让我知道什么类/函数处理这个。

回答

-1

写给电话流是不可能的,对不起。

12

写入电话流IS可能,但不是来自股票(非固定)电话上的应用程序级别。

当电话发起呼叫话筒是“一般”(实际上取决于具体的电话)直接发送到基带,即完全跳过主处理器。

对于传出的声音:MIC-> codec->基带 对于输入的音频:baseband-> codec->扬声器

如果总是路由:MIC-> codec-> mainprocessor-> codec->基带

这时如果在Android的API(框架)支持访问它的流将是“大概”可用。

我说这是可能的原因是因为音频(现在几乎所有的智能手机)通过SlimBus连接这允许动态改变音频路径。然而,它通过居住在ALSA的编解码器驱动程序在内核中完成。

所以....是你如此上进,你可以得到Linux内核的手机源和修改编解码器/ ALSA驱动程序允许您更改时会发生什么的通话音频路径设置。当然,你会因为新的路径导致延迟,打破了通话/延迟标准(Audience帮助他们编写...),而基带芯片可能会因为它不及时而拒绝你的音频。

最后你会需要修改Android的源(框架)成长的API,支持音频注入到该流。 (你需要让大MODS的媒体服务器,特别是audioflinger ...)

这是复杂的,但你的答案。欢呼声,:-)

0

捕获远程子混音需要CAPTURE_AUDIO_OUTPUT权限。此权限保留供系统组件使用,并且不适用于第三方应用程序:(

0

要获取音频数据是非常可能的,但要将音频写入上游通道,这不可能