【问题标题】:List of connected audio input devices on AndroidAndroid 上已连接的音频输入设备列表
【发布时间】:2014-05-22 22:31:03
【问题描述】:

我的应用程序只能录制来自外部麦克风的声音。有没有办法获取可用麦克风的列表?

我正在使用AudioRecord 进行声音捕捉。

提前致谢。

【问题讨论】:

  • 我很好奇。什么手机型号支持多于 1 个麦克风?我知道有一些地方可以插入集成式麦克风+扬声器耳机,但在这种情况下,它们会禁用现有的麦克风。
  • 连接有线耳机并不会真正禁用内置麦克风;它只是为 大多数 音频源(不一定正确,例如CAMCORDER 音频源)赋予外部麦克风比内部麦克风更高的优先级。我猜 OP 想要检测是否连接了外部麦克风,并且只有在这种情况下才录制音频。
  • 没错,我有一个自定义麦克风,除非已连接,否则应用程序不应记录信号。

标签: java android


【解决方案1】:

我找到了适合我的解决方案here。并添加如下代码:

private static boolean headsetMic;

private static BroadcastReceiver mReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        final String action = intent.getAction();
        if (Intent.ACTION_HEADSET_PLUG.equals(action)) {
            final int headphones = intent.getIntExtra("state", -1);
            final int mic = intent.getIntExtra("microphone", -1);
            // we need to check both of them, because if headset with
            // mic was disconnected mic is 1 but headphones is 0, and
            // actually no external mic is connected
            headsetMic = headphones > 0 && mic > 0;
        }
    }
};

public static boolean isExternalMicConnected() {
    return headsetMic;
}

我打电话给isExternalMicConnected(),它会显示自定义麦克风是否已连接。

【讨论】:

    猜你喜欢
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多