关于同时链接USB耳机与蓝牙耳机时,麦克风数据只走USB不走蓝牙耳机
Posted 不二菜菜子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于同时链接USB耳机与蓝牙耳机时,麦克风数据只走USB不走蓝牙耳机相关的知识,希望对你有一定的参考价值。
mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
private void openSco()
if (!mAudioManager.isBluetoothScoAvailableOffCall())
Log.d(TAG, "系统不支持蓝牙录音");
return;
//mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
//蓝牙录音的关键,启动SCO连接,耳机话筒才起作用
mAudioManager.stopBluetoothSco();
mAudioManager.startBluetoothSco();
//蓝牙SCO连接建立需要时间,连接建立后会发出ACTION_SCO_AUDIO_STATE_CHANGED消息,通过接收该消息而进入后续逻辑。
//也有可能此时SCO已经建立,则不会收到上述消息,可以startBluetoothSco()前先
//stopBluetoothSco()
registerReceiver(new BroadcastReceiver()
@Override
public void onReceive(Context context, Intent intent)
int state = intent.getIntExtra(AudioManager.EXTRA_SCO_AUDIO_STATE, -1);
if (AudioManager.SCO_AUDIO_STATE_CONNECTED == state)
mAudioManager.setBluetoothScoOn(true); //打开SCO
//voiceRecogniton();//开始语音识别
unregisterReceiver(this); //别遗漏
else //等待一秒后再尝试启动SCO
try
Thread.sleep(1000);
catch (InterruptedException e)
e.printStackTrace();
mAudioManager.startBluetoothSco();
, new IntentFilter(AudioManager.ACTION_SCO_AUDIO_STATE_CHANGED));
private void closeSco()
if(mAudioManager.isBluetoothScoOn())
mAudioManager.setBluetoothScoOn(false);
mAudioManager.stopBluetoothSco();
以上是关于关于同时链接USB耳机与蓝牙耳机时,麦克风数据只走USB不走蓝牙耳机的主要内容,如果未能解决你的问题,请参考以下文章
USB耳机声卡-音频输入/输出控制器:DP108替代兼容CM108