Bu, Stackoverflow'taki ilk gönderiim. Son birkaç gündür android akıllı telefona ses yollamayı deniyorum, ancak bunu düzgün bir şekilde yerine getiremiyorum.Android - Akıllı telefon ve bluetooth modülü arasında ses iletimi işlevi
Bir Bluetooth Bebek Telefonu yapmak içindir.
Akıllı telefon ve Bluetooth modülü arasında bir yönlendirme yapmam gerekiyor. Bluetooth modülü başlangıçta Ahize, araba Handfree, kablosuz hoparlör ...
Projenin ses tarafı için A2DP ve HFP (Handfree) profilleri ile iletişim kurar.
Cihazlar arasında “sco” bağlantısı kurabilir (Audio Bluetooth değişimleri ile bağlantı kurabilir) ve Bluetooth modülünden ses alabilirim. Ancak “sco” bağlantısı kurulduğunda, akıllı telefonumdaki hoparlör ve mikrofonu kullanamıyorum.
Akıllı telefonumda ve aynı zamanda Bluetooth modülümdeki sesin kullanımı için bir çözüm bulmayı umuyorum.
Ses yönlendirmek için bir işlev için http://developer.android.com/index.html numaralı telefondan aradım.
AudioManager sınıfı, setRouting veya setParameters gibi sesleri yönlendirmek için bazı işlevlere sahiptir, ancak henüz bir sonucum var. http://developer.android.com/reference/android/media/AudioManager.html
Sen babyphone tarafında (Bluetooth modülü tarafı) ses almak için kullandığınız kod aşağıda görebilirsiniz: Ben akıllı telefon hoparlöre değil rota ses ve içinde “sco” bağlantısını kullanabilirsiniz Eğer
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()
Aynı anda mikrofonun mikrofondan sesini geri almak için, projemin yönünü değiştirmek için en kısa zamanda bunu bilmem gerekiyor.
Akıllı telefon tarafındaki bebek telefonu programının mümkünse tüm akıllı telefonlarda çalışması gerekir.
İngilizce benim ilk dilim değil, bu nedenle bazı cümle doğru olmayabilir.
Herhangi bir çözüme açığım var.
Herhangi bir şans? Bluetooth kulaklığımın mikrofonunu bir PA sistemi olarak kullanmaya çalışıyorum, başka bir deyişle oynatma işlemi jack (çıkış) üzerinden yapılmalı (başka bir bluetooth cihaz üzerinden tahmin edersiniz). Bu mümkün değil gibi görünüyor – Diego