在我的应用中,我允许用户在内置手机扬声器,免提电话和立体声BT(A2DP)耳机之间切换音频输出。如果插入有线耳机,则无法选择内置扬声器或A2DP。无论哪种方式,声音都通过有线耳机播放。有没有办法强迫它通过BT耳机播放?
使用API 5及更高版本,不推荐使用隐式设置音频路径的所有方法,因此我无法找到实现此目的的方法。任何帮助将不胜感激。
感谢。
答案 0 :(得分:-1)
如果插入有线耳机+ 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();