【问题标题】:Select microphone source from headset instead of handy mic从耳机而不是手持麦克风选择麦克风源
【发布时间】:2017-08-25 20:39:30
【问题描述】:

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

【问题讨论】:

    标签: java android bluetooth microphone headset


    【解决方案1】:

    您必须处理以下意图。 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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多