在我的应用程序中,我允许用户在内部听筒扬声器、扬声器和立体声 BT (A2DP) 耳机之间切换音频输出。如果插入有线耳机,则无法选择内置扬声器或 A2DP。无论哪种方式,声音都会通过有线耳机播放。有没有办法强制它通过BT耳机播放?
使用 API 5 及更高版本,所有隐式设置音频路径的方法都已弃用,所以我想不出办法来做到这一点。任何帮助,将不胜感激。
谢谢。
如果插入有线耳机 + BT 耳机,则可以切换到内置扬声器(如果您指的是 android 设备扬声器)或有线耳机
AudioManager audioManager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_CALL);
// true - switch to internal speakers; false - to wired headsets
audioManager.setSpeakerphoneOn(true);
mMediaPlayer = MediaPlayer.create(AudioTests.this, R.raw.test_cbr);
mMediaPlayer.start();
但是在这种情况下,切换到BT耳机是有问题的。此代码无助于切换到
// instead of audioManager.setSpeakerphoneOn(true);
audioManager.setMode(0);
audioManager.setBluetoothScoOn(true);
audioManager.startBluetoothSco();