Questo è il mio primo post su Stackoverflow. Cerco di instradare l'audio su smartphone Android negli ultimi giorni ma non trovo la funzione per farlo correttamente.Android - Funzione per instradare l'audio tra smartphone e modulo bluetooth
È per la creazione di un babyphone Bluetooth.
Ho bisogno di fare un routing tra smartphone e modulo Bluetooth. Il modulo Bluetooth è inizialmente utilizzato per rendere Handset, auto Handfree, altoparlante wireless ...
Io comunico con i profili A2DP e HFP (Handfree) per il lato audio del progetto.
È possibile stabilire una connessione "sco" (connessione utilizzata con gli scambi Bluetooth audio) tra i dispositivi e ripristinare l'audio dal modulo Bluetooth. Ma quando una connessione "sco" funziona, non posso più usare l'altoparlante e il microfono sul mio smartphone.
Spero di trovare una soluzione per utilizzare l'audio sul mio smartphone e nello stesso tempo l'audio sul mio modulo Bluetooth.
Ho cercato su http://developer.android.com/index.html per una funzione per indirizzare l'audio.
La classe AudioManager ha alcune funzioni per indirizzare l'audio come setRouting o setParameters ma non ho ancora alcun risultato. http://developer.android.com/reference/android/media/AudioManager.html
Potete vedere qui sotto il codice che uso per ottenere l'audio dal lato interfono (lato modulo Bluetooth):
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()
Se non posso percorso audio dell'altoparlante smartphone e utilizzare la connessione “sco” nel Allo stesso tempo per riprendere l'audio dal microfono sul lato babyphone, ho bisogno di conoscerlo il prima possibile per cambiare la direzione del mio progetto.
Il programma babyphone sul lato smartphone deve essere eseguito su tutti gli smartphone recenti, se possibile.
L'inglese non è la mia prima lingua, quindi alcune frasi potrebbero non essere corrette.
Sono aperto a qualsiasi soluzione.
Qualche fortuna? Sto provando ad usare il microfono della mia cuffia bluetooth come un sistema PA, in altre parole la riproduzione dovrebbe essere sopra la presa (uscita), (immagino che su un altro dispositivo bluetooth sarebbe impossibile). Sembra che non sia possibile il – Diego