0
我有一個藍牙耳機(BTC6White)。我想對麥克風說話,Android設備播放聲音。瞭解與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?
}}
和startBuetoothSco()是什麼?要了解sco狀態? SCO_AUDIO_STATE_CONNECTED ...或發送/接收數據?我不明白如何從de耳機獲取音頻數據,然後如何流式傳輸到揚聲器。有必要建立SCO連接(使用AudioManager)來獲取藍牙耳機的數據?
很難找到關於這個問題的信息,並且android文檔非常差(本主題)。
您可以使用我的答案在http://stackoverflow.com/questions/14991158/using-the-android-recognizerintent-with-a-bluetooth-headset/14993590#14993590 – 2013-03-15 22:01:23
奧克斯,我可以建立一個SCO連接,但是,如何獲得音頻? – jlmg5564 2013-03-16 13:13:33
我不知道是否有可能將音頻從藍牙耳機路由到揚聲器。你爲什麼不嘗試SoundAbout來查看它是否首先做了類似的事情。鏈接https://play.google.com/store/apps/details?id=com.woodslink.android.wiredheadphoneroutingfix – 2013-03-17 00:09:57