在Android上没有线缆的扬声器输出到麦克风输入?

时间:2013-08-22 15:01:38

标签: android microphone speaker jack

我想在不使用任何物理线缆的情况下将扬声器输出连接到Android手机上的麦克风输入。此类路由应对所有应用程序透明。有了这个功能,我可以设计一堆有趣的应用程序,例如,测量一个voip呼叫的往返延迟,自动回复来电等。

这里可以找到一些类似的问题:

Background music for call

Outputting audio stream into microphone

现在似乎Android上没有解决方案,但是在Linux上运行的工具JACK就是壁橱。有人可以提供一些脚本或代码来创建一个在Linux上实现这个(扬声器 - >麦克风)的JACK客户端吗?将JACK服务器和客户端移植到Android有多难?

谢谢!

1 个答案:

答案 0 :(得分:2)

让Jack在Linux上将麦克风连接到扬声器:

  1. 用QJackCtl启动Jack。这并不像听起来那么容易:
    1. 启动QJackCtl。
    2. 点击“设置...”按钮。
    3. 从“Driver:”下拉菜单中选择“alsa”。
    4. 从“输入设备”和“输出设备”下拉列表中选择要使用的声卡/声卡。请注意,如果你有一个相对强大的声卡,可能有许多可能的设备(我的Audigy 2 ZS有四个)。选择正确的内容超出了本教程的范围。
    5. 检查右下角的延迟时间。意识到杰克本身需要一些时间来处理声音。这给了你关于那个的信息(我很抱歉,但我不确切地知道它意味着什么)。运行Jack通常是在获得超低延迟和避免“xruns”之间的权衡,这是Jack必须放弃处理一段音频的地方。 Xruns经常会产生“咔嗒”声。
    6. 点击“确定”。
  2. 点击“连接”按钮。
  3. 这将打开“连接”面板。这基本上是一个可以将不同的Jack应用程序相互插入的地方,因此它们可以互相处理音频。
  4. 选择输入(左侧的“系统”)和输出(右侧的“系统”),然后单击“连接”。您可能需要在一侧或两侧查看“系统”下列出的各种内容,以找到实际从麦克风/输出到扬声器的内容,在这种情况下。同样,这超出了本教程的范围;谷歌是你的朋友,正如反复试验一样。
  5. 将麦克风靠近扬声器时,请享受反馈的噪音。
  6. 就将Jack移植到Android而言,您可能会看一下this,这基本上似乎表明Android无法处理Jack的低延迟要求(这可能也会导致你尝试进行延迟测量的问题)。您还可以查看thisthis,这可能会提供另一种方法来执行您尝试执行的操作(我不确定它在延迟问题上的位置,我也是我自己从未使用PD或libpd。