2017-03-31 45 views
0

内蔵のAndroidスマートフォンマイクを使用するのではなく、Bluetoothヘッドセットからオーディオを録音することは可能ですか? ヘッドセットを電話に接続しているときに電話をかけている間にマイクを使用できますが、他の場合は録音しません。たとえば、録音アプリケーションで音声を録音しようとしているときに、 。代わりにヘッドセットマイクを選択するためのソリューションがありますか、それともアプリケーションを作成できますか?便利なマイクの代わりにヘッドセットからマイクソースを選択

答えて

0

以下のインテントを処理する必要があります。 https://developer.android.com/reference/android/speech/RecognizerIntent.html#ACTION_VOICE_SEARCH_HANDS_FREE

次のコードを使用して、Bluetoothヘッドセットマイクを使用することができます。

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"); 
     } 
    } 
}; 

と切り替え(Bluetoothヘッドセットマイクを切断する)にはこのコードを使用できます。

mAudioManager.stopBluetoothSco(); 
関連する問題