これは私の最初の投稿Stackoverflowです。 私は過去数日間アンドロイドスマートフォンで音声をルーティングしようとしていますが、私はそれを正しく行う機能が見つかりません。Android - スマートフォンとBluetoothモジュール間で音声をルーティングする機能
Bluetoothの赤ちゃんを作るためのものです。
スマートフォンとBluetoothモジュールの間でルーティングを行う必要があります。 Bluetoothモジュールは、当初、ハンドセット、車のハンズフリー、ワイヤレススピーカーを作るために使用されます。
私はプロジェクトのオーディオ側のA2DPとHFP(Handfree)プロファイルと通信します。
デバイス間で「sco」接続(オーディオBluetooth交換で使用される接続)を確立し、Bluetoothモジュールから音声を戻すことができます。しかし、接続「sco」が機能しているときは、私のスマートフォンでスピーカーとマイクを使用することはできません。
スマートフォンで音声を使用するソリューションと、同時にBluetoothモジュールで音声を使用するソリューションを見つけることを希望します。
http://developer.android.com/index.htmlで、音声をルーティングする機能を検索しました。
AudioManagerクラスには、setRoutingやsetParametersのようなオーディオをルーティングする関数がありますが、まだ結果があります。
boolean isRecording=true;
int buffersize = 8000;
byte[] buffer = new byte[buffersize];
//audio configuration and SCO Bluetooth connection.
AudioManager aManager = (AudioManager) getSystemService(AUDIO_SERVICE);
android.os.Process.setThreadPriority(
android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
aManager.startBluetoothSco();
aManager.setBluetoothScoOn(true);
aManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
//AudioRecord configuation for recording audio from babyphone.
AudioRecord arec = new AudioRecord(
MediaRecorder.AudioSource.VOICE_COMMUNICATION,
8000,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
buffersize);
//AudioTrack configuation for sending audio to smartphone speaker.
AudioTrack atrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL,
8000,
AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT,
buffersize,
AudioTrack.MODE_STREAM);
atrack.setPlaybackRate(8000);
//start audio recording and playing.
arec.startRecording();
atrack.play();
while(isRecording) {
arec.read(buffer, 0, buffersize);
atrack.write(buffer, 0, buffer.length);
}
arec.stop();
atrack.stop()
私はスマートフォンのスピーカーへのルートのオーディオができず、中に「SCO」接続を使用する場合:あなたは、私がbabyphone側(Bluetoothモジュール側)からオーディオを取得するために使用したコードの下に見ることができます http://developer.android.com/reference/android/media/AudioManager.html
ベビーフォンのマイクから音声を取り戻すのと同じ時間に、私は自分のプロジェクトの方向を変えるためにできるだけ早くそれを知る必要があります。
可能であれば、スマートフォン側のベビーフォンプログラムは最近のすべてのスマートフォンで実行する必要があります。
英語は第1言語ではないため、一部の文章が正しくない可能性があります。
私はどのソリューションにも対応しています。
運がいいですか?私はPAシステムとしてBluetoothヘッドセットのマイクを使用しようとしています。つまり、再生はジャック(出力)上になければなりません(別のブルートゥースデバイスでは不可能と思われます)。 – Diego