从耳机中选择麦克风源而不是方便的麦克风

时间:2017-03-31 14:18:47

标签: java android bluetooth microphone headset

是否可以从我的蓝牙耳机录制音频而不是使用集成的Android智能手机麦克风? 当我将耳机连接到手机时,我可以在打电话时使用麦克风,但在任何其他情况下,它都不会记录任何内容,例如当我尝试使用录音应用程序录制音频时,它会使用手机中的麦克风。那么有没有选择耳机麦克风的解决方案,还是我可以为它编写应用程序?

1 个答案:

答案 0 :(得分:0)

您必须处理以下意图。 https://developer.android.com/reference/android/speech/RecognizerIntent.html#ACTION_VOICE_SEARCH_HANDS_FREE

您可以使用以下代码来使用蓝牙耳机麦克风。

AudioManager audiomanager= (AudioManager)mContext.getSystemService(Context
            .AUDIO_SERVICE);
IntentFilter intentFilter = new IntentFilter(AudioManager.ACTION_SCO_AUDIO_STATE_UPDATED);
    mContext.registerReceiver(mBluetoothScoReceiver, intentFilter);
audiomanager.startBluetoothSco();

并收听广播接收器。

private BroadcastReceiver mBluetoothScoReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        int state = intent.getIntExtra(AudioManager.EXTRA_SCO_AUDIO_STATE, -1);

        if (state == AudioManager.SCO_AUDIO_STATE_CONNECTED) {
            // Start recording audio
            log("audio connected");
            startRecording();
        } else if(state == AudioManager.SCO_AUDIO_STATE_DISCONNECTED){
            log("audio disconnected");
        }
    }
};

和切换(断开蓝牙耳机麦克风),您可以使用此代码。

mAudioManager.stopBluetoothSco();