После того, как я использую Android AudioManager для включения SCO и громкой связи, затем я возвращаю его туда, откуда он начался, поток мультимедиа останется на наушнике, а не на динамике телефона.Здесь я делаю изменения для маршрутизации потока через громкую связь SCO (которая прекрасно работает)
if (am2.isBluetoothScoAvailableOffCall()) {
am2.startBluetoothSco();
}
if(!am2.isSpeakerphoneOn()){
speakerPhoneWasOn = false;
am2.setSpeakerphoneOn(true);
}
myHash.put(TextToSpeech.Engine.KEY_PARAM_STREAM,
String.valueOf(AudioManager.STREAM_VOICE_CALL));
am2.requestAudioFocus(null, AudioManager.STREAM_VOICE_CALL,
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
Затем я пытаюсь изменить все обратно после прочтения моего сообщения (я использую TTS)
if(SMSstream == 1){
if (am2.isBluetoothScoAvailableOffCall()) {
am2.stopBluetoothSco();
}
if(!speakerPhoneWasOn){
am2.setSpeakerphoneOn(false);
}
}
else{
}
am2.setMode(OLD_AUDIO_MODE);
am2.abandonAudioFocus(null);
Но он остается с динамиком телефона вместо динамика, пока я не перезагружусь.Я видел несколько постов, которые имели противоположную проблему, но ни одного с этой проблемой.У меня есть Droid 3 с Android 2.3.4.
Вы можете увидеть весь проект и исходный код здесь: http://code.google.com/p/a2dpvolume/