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 のドキュメントは非常に貧弱です (このトピック)。