0

Bluetooth ヘッドセット (BTC6White) を持っています。マイクに向かって話したいのですが、Android デバイスがサウンドを再生します。

それで、どうすればこれを行うことができますか?まず、ソケット接続を確立できます

socket = mDevice.createRfcommSocketToServiceRecord(UUID.fromString("0000111e-0000-1000-8000-00805f9b34fb"));
socket.connect();

では、どうすれば音声を取得できますか? このメソッドを使用するのは何ですか: startBuetoothSco? オーディオをスピーカーに入れるには、Auditrack を使用する必要がありますか?

int buffersize = AudioTrack.getMinBufferSize(8000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT);
soundData = new byte [buffersize*5];    
audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, 
   8000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT, 
   soundData.length,AudioTrack.MODE_STREAM);

しかし、それでは、バッファ soundData を埋める必要がありますか? どのように?ソケットを (スレッドに) 使用していますか?

  mmInStream = socket.getInputStream();
  public void run() {
  byte[] buffer = new byte[8000*2]; 
      while (true) {
           bytes = mmInStream.read(buffer);
            audioTrack.write(buffer, 0, bytes); //write directly?
      }}

startBuetothSco() は何のために?スコ州を知るには?SCO_AUDIO_STATE_CONNECTED... それともデータの送受信?ヘッドセットから音声データを取得する方法と、スピーカーにストリーミングする方法がわかりません。Bluetooth ヘッドセットのデータを取得するには、SCO 接続 (AudioManager を使用) を確立する必要がありますか?

この問題に関する情報を見つけるのは非常に難しく、Android のドキュメントは非常に貧弱です (このトピック)。

4

1 に答える 1