我有一个应用程序需要连接到无线蓝牙耳机来收集原始音频。
MODE_IN_CALL 适用于某些设备,MODE_IN_COMMUNICATION 适用于其他设备。
麦克风可以工作,但我失去了音频,反之亦然。
我使用的是 Nexus 5x 和 Samsung Edge。但同一型号和品牌的两台设备之间的行为不一致。
已为配对的蓝牙耳机启用电话呼叫和媒体音频。
if (btAdapter != null && btAdapter.isEnabled() && btAdapter.getProfileConnectionState(BluetoothProfile.HEADSET) == BluetoothProfile.STATE_CONNECTED) {
if (localAudioManager.isBluetoothScoAvailableOffCall()) {
Bundle extrasBundle = registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int conState = intent.getExtras().getInt(AudioManager.EXTRA_SCO_AUDIO_STATE);
if (conState ==AudioManager.SCO_AUDIO_STATE_CONNECTED) {
localAudioManager.setBluetoothScoOn(true);
context.unregisterReceiver(this);
} else {
if (conState == AudioManager.SCO_AUDIO_STATE_CONNECTING) {
writeLog("Bluetooth Receiver :SCO Connecting....");
} else if (conState == AudioManager.SCO_AUDIO_STATE_ERROR) {
writeLog("Bluetooth Receiver : SCO Error.");
context.unregisterReceiver(this);
} else if (conState == AudioManager.SCO_AUDIO_STATE_DISCONNECTED) {
writeLog("Bluetooth Receiver :SCO Disconnected");
localAudioManager.setBluetoothScoOn(false);
}
}
}
}, new IntentFilter(AudioManager.ACTION_SCO_AUDIO_STATE_UPDATED)).getExtras();
if (extrasBundle.getInt(AudioManager.ACTION_SCO_AUDIO_STATE_UPDATED) != 2) {
localAudioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
localAudioManager.startBluetoothSco();
}
}
}
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)