在我的应用中,我允许用户在内部听筒扬声器、免提电话和立体声 BT (A2DP) 耳机之间切换音频输出。如果插入有线耳机,则无法选择内置扬声器或 A2DP。无论哪种方式,声音都会通过有线耳机播放。有什么办法可以强制通过蓝牙耳机播放吗?
使用 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();
关于android - 在 Android 中,如何在有线耳机和 A2DP BT 耳机之间切换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6260005/