我有一个奇怪的设置,我试图使用TRRS公 - 男音频线从外部设备录制音频。它应该工作的方式,我将音频线插入设备,然后插入手机,然后使用AudioRecorder录制音频。在我的HTC One M8上,一切都很棒,我可以从设备录制音频。在我的三星Galaxy S2上,它可以录制音频,但是来自内置麦克风。
我确认问题在于麦克风输入的阻抗。如果我在音频线上添加一个电阻以增加麦克风阻抗,那么S2将从设备正确录制。
所以我的问题是:是否有强迫Android使用外置麦克风插孔?我调查了发送ACTION_HEADSET_PLUG意图,麦克风设置为-1表示外部,但由于权限错误而失败。似乎这个意图被转移到受保护的权限(https://github.com/android/platform_frameworks_base/commit/8f014059d3084fcce9e82b4b1f8b8323744ac52d)
有没有其他方法强制手机在没有外部硬件的情况下使用麦克风插孔?!
谢谢!
此外,对于实际录音,设置为: 44100kHz采样率 16位样本 单声道 Buffer设置为AudioRecord.MinBufferSize()