Android:强制外部麦克风(插孔输入 3.5mm)保持打开状态

Posted

技术标签:

【中文标题】Android:强制外部麦克风(插孔输入 3.5mm)保持打开状态【英文标题】:Android: Forcing external microphone (jack input 3.5mm) to stay on 【发布时间】:2013-10-15 20:38:59 【问题描述】:

如何强制 android 系统选择 3.5 毫米插孔作为我的麦克风源?我正在使用 AudioRecord 类进行录音。

我正在使用外接麦克风。当它被检测到时,一切正常,但有时不会自动检测到外部麦克风。 TRRS 分配器(便宜的 3 美元)用于将 3.5 毫米插孔分成单独的麦克风和耳机插孔(我需要同时录制和播放)。

AudioManager.setWiredHeadsetOn() 已被弃用,并且指示说不要使用它。

1) 我是否可能需要额外的外部硬件来提供正确的麦克风阻抗?

2) 我可以在代码中强制输入吗?

3) 自定义 ROM 是否可以在此级别存档音频控制 - 也许这是最好的选择?

谢谢

【问题讨论】:

可能是硬件问题。请尝试使用普通手机的耳机是否能正常工作且稳定。 TTRS 插头在许多情况下不同(环的长度不同),这会导致连接问题。 普通耳机效果很好....(TRRS 插孔看起来与耳机插孔一模一样)。问题可能与硬件有关。我需要使用特定的外部麦克风,因此无论外部硬件设置如何,都必须强制打开插孔。 根据硬件问题的严重程度,可能可以通过修改耳机检测驱动程序来应对。恐怕我无法提供有关您将如何做的任何信息,因为这不是我自己尝试过的事情。 【参考方案1】:

这很可能是硬件问题。三星手机似乎需要一个阻抗在 1.0k - 1.5k Ohm 左右的麦克风。尝试通过添加串联电阻来提高阻抗来修改输入麦克风线。查看此链接以了解有关如何执行此操作的详细信息:xdadevelopers - External mic on Galaxy devices

【讨论】:

良好的链接。我会试试这个,明天让你知道。谢谢。 这行得通。虽然这不是问题的完全答案 - 强制手机选择插孔 - 这可能需要驱动程序模块,如上面迈克尔所指出的那样。该设备会自动检测具有正确阻抗的麦克风。我在麦克风线上焊接了一个 1k5 欧姆的电阻,效果很好。 我一直在使用具有 1000 欧姆阻抗的 [外部领夹][1] 使用 TRRS 适配器(注意 CTIA 和 OMTP 标准)。我对三星 s2(kitkat)和三星二重奏(我认为是棉花糖)没有任何问题。我还没有设法让它在 Windows 手机上运行,​​也没有在 iPhone 上测试过。 [1]:audio-technica.com/cms/wired_mics/742fb06dd066b3ec

以上是关于Android:强制外部麦克风(插孔输入 3.5mm)保持打开状态的主要内容,如果未能解决你的问题,请参考以下文章

通过音频插孔电缆在两个 Android 设备上传输数据

Android:监听辅助端口

声卡和麦克风和功放怎么连接

iOS 配件 SDK - 3.5mm 插孔控制

检测新的视频和音频输入

iOS 通过插孔端口捕获音频