当前位置:   article > 正文

蓝牙连接的sco问题_startbluetoothsco

startbluetoothsco

之前开发蓝牙app的时候遇到了一个问题,想让蓝牙麦克风实时地接收语音信号,但是发现蓝牙咪头始终不能传入声音信号,只有手机的麦克风能够传入声音信号,查阅了资料,发现是sco没有设置好。经过多尝试后解决了问题,这里分享给大家。

首先我使用了一个按键来设置打开或者关闭sco,即是用蓝牙麦克风输入还是用手机麦克风输入。

  1. case R.id.button1:
  2. if (btn1.getText().equals("手机")) {
  3. //切换蓝牙
  4. Log.i(TAG, "打开Sco....");
  5. //获得蓝牙设备
  6. Sco=true;
  7. openSco();
  8. btn1.setText(R.string.bluetooth);
  9. }else{
  10. // 关闭连接socket
  11. // 切换手机
  12. Sco=false;
  13. closeSco();
  14. btn1.setText(R.string.cellphone);
  15. }
  16. break;

然后是两个函数,openSco和closeSco

 

 

  1. private void openSco(){
  2. if (!mAudioManager.isBluetoothScoAvailableOffCall()) {
  3. Log.d(TAG, "系统不支持蓝牙录音"");
  4. return;
  5. }
  6. //mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
  7. //蓝牙录音的关键,启动SCO连接,耳机话筒才起作用
  8. mAudioManager.stopBluetoothSco();
  9. mAudioManager.startBluetoothSco();
  10. //蓝牙SCO连接建立需要时间,连接建立后会发出ACTION_SCO_AUDIO_STATE_CHANGED消息,通过接收该消息而进入后续逻辑。
  11. //也有可能此时SCO已经建立,则不会收到上述消息,可以startBluetoothSco()前先
  12. //stopBluetoothSco()
  13. registerReceiver(new BroadcastReceiver() {
  14. @Override
  15. public void onReceive(Context context, Intent intent) {
  16. int state = intent.getIntExtra(AudioManager.EXTRA_SCO_AUDIO_STATE, -1);
  17. if (AudioManager.SCO_AUDIO_STATE_CONNECTED == state) {
  18. mAudioManager.setBluetoothScoOn(true); //打开SCO
  19. //voiceRecogniton();//开始语音识别
  20. unregisterReceiver(this); //别遗漏
  21. } else {//等待一秒后再尝试启动SCO
  22. try {
  23. Thread.sleep(1000);
  24. } catch (InterruptedException e) {
  25. e.printStackTrace();
  26. }
  27. mAudioManager.startBluetoothSco();
  28. }
  29. }
  30. }, new IntentFilter(AudioManager.ACTION_SCO_AUDIO_STATE_CHANGED));
  31. }
  1. private void closeSco() {
  2. if(mAudioManager.isBluetoothScoOn()){
  3. mAudioManager.setBluetoothScoOn(false);
  4. mAudioManager.stopBluetoothSco();
  5. }
  6. }

其中的audioManager

   mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/192221
推荐阅读
相关标签
  

闽ICP备14008679号