我可以在有根的Android上拦截音频吗?

时间:2013-08-13 07:43:56

标签: android linux audio

据我所知,无法将音频输出从预先存在的Android应用程序(例如Spotify)重定向到USB声卡或文件。我相信这可能与隐私和录音电话有关。

我不太了解Linux,但知道它非常灵活,并且经常阅读将一个程序的输出汇总到另一个程序的输入。我还在一些Androids的dev目录中看到一些名为“audio”的“文件”。

我的问题是 - 这些内容是否与原始音频输出相对应?如果平板电脑/手机已植根,那么可以使用某些Linux魔法拦截该流吗?

我的动机是提供比基本扬声器/耳机/蓝牙选项更高质量的音频输出。

1 个答案:

答案 0 :(得分:1)

简短的回答是肯定的,你可以一起破解某些东西。但是特定手机的音频实现完全取决于制造商,因此无法保证。它不太可能像你想象的那么简单。它没有单行命令行魔法。

Android不使用通常的Linux ALSA用户空间代码,因此您无法从Linux中进行概括,并说“如果我可以在Linux中执行此操作,我可以在root的Android上执行此操作”。

我认为某些Android实现使用TinyALSA,但这不是必需的。如果是这种情况,您可以使用自己的拦截逻辑重新编译TinyALSA,或者以其他方式插入您的设备。同样,如果您运行的是从源代码构建的Android mod,您可以修改它以拦截其他级别的音频,例如Audio Flinger或HAL的接口。如果您只使用有根设备,这就不太实用,因为制造商经常使用自定义来修改系统元素,这可能使您难以插入和拦截(仅仅因为您不知道如果API被修改后要替换什么)。

我在阅读Andraudio mailing list时收集到的答案中的大部分信息。您可以查看档案以了解更多信息。