Android 2.3: Как мне переключиться с SCO на A2DP для полноценного динамика Bluetooth?
Теперь я могу заставить это приложение начать воспроизведение аудио через A2DP и успешно переключиться на SCO, однако, когда я пытаюсь переключиться обратно, оно воспроизводится через динамик моего телефона.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
layout = (RelativeLayout) findViewById(R.id.layout);
text = (TextView) findViewById(R.id.editText1);
scoSwitch = (ToggleButton) findViewById(R.id.switch1);
try {
mp1 = MediaPlayer.create(this, R.raw.jc_cm);
mp2 = MediaPlayer.create(this, R.raw.rp);
amanager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
//amanager.setBluetoothA2dpOn(true);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void onSCOswitch(View view){
if (scoSwitch.isChecked()){
amanager.setBluetoothScoOn(true);
amanager.startBluetoothSco();
Log.d("Bluetooth", "SCO on");
amanager.setMode(AudioManager.MODE_IN_COMMUNICATION);
}
else{
amanager.stopBluetoothSco();
amanager.setBluetoothScoOn(false);
amanager.setBluetoothA2dpOn(true);
Log.d("Bluetooth", "SCO off");
amanager.setMode(AudioManager.MODE_NORMAL);
}
}
1 ответ
Я могу только помочь здесь, посоветовав вам попытаться избежать маршрутизации аудиотрассы BT. Это очень сложная проблема, которую нужно решить, поэтому очень немногие приложения (кроме самого приложения Phone) маршрутизируют аудиопути BT, и те немногие, которые пробуют это, вероятно, имеют нежелательные результаты.
Согласно http://developer.android.com/reference/android/media/AudioManager.html):
public void setBluetoothA2dpOn (логическое значение включено)
Этот метод устарел. Не использовать.