이것은 Stackoverflow의 첫 번째 게시물입니다. 지난 며칠 동안 안드로이드 스마트 폰에서 오디오를 라우팅하려고 시도하지만 제대로 수행 할 수있는 기능을 찾지 못했습니다.Android - 스마트 폰과 블루투스 모듈간에 오디오를 라우팅하는 기능
블루투스 아기 폰용입니다.
스마트 폰과 블루투스 모듈 사이를 라우팅해야합니다. 블루투스 모듈은 처음에는 핸드셋, 차량용 핸즈프리, 무선 스피커를 만들기 위해 사용됩니다.
프로젝트의 오디오쪽에 대해 A2DP 및 HFP (Handfree) 프로파일과 통신합니다.
장치간에 "sco"연결 (오디오 Bluetooth 교환과 함께 사용되는 연결)을 설정하고 Bluetooth 모듈에서 오디오를 가져올 수 있습니다. 그러나 "sco"연결이 작동 중일 때 스마트 폰에서 스피커와 마이크를 더 이상 사용할 수 없습니다.
내 스마트 폰에서 오디오를 사용하고 동시에 내 Bluetooth 모듈의 오디오를 사용하는 솔루션을 찾고 싶습니다.
http://developer.android.com/index.html에서 오디오 라우팅 기능을 검색했습니다.
AudioManager 클래스에는 setRouting 또는 setParameters와 같이 오디오를 라우팅하는 몇 가지 기능이 있지만 아직 결과가 있습니다. http://developer.android.com/reference/android/media/AudioManager.html
당신은 내가 babyphone 측 (블루투스 모듈 측)에서 오디오를 얻기 위해 사용하는 코드 아래에 볼 수 있습니다: 나는 스마트 폰 스피커로 라우팅하지 오디오와가에서 "SCO"연결을 사용할 수있는 경우
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()
같은 시간에 아기 측면의 마이크에서 오디오를 되찾기 위해 가능한 빨리 프로젝트의 방향을 변경해야합니다.
가능한 경우 최신 스마트 폰에서 스마트 폰 측의 베이비 프로그램을 실행해야합니다.
영어가 제 첫 번째 언어가 아니기 때문에 일부 문장이 올바르지 않을 수 있습니다.
나는 어떤 해결책이든 열려 있습니다.
행운을 빕니다. 블루투스 헤드셋의 마이크를 PA 시스템으로 사용하려고합니다. 즉, 재생은 잭 (출력)을 통해 이루어져야합니다 (다른 블루투스 장치로는 불가능할 것 같음). – Diego