在录制来自蓝牙的音频时,在耳机上播放实时音频

时间:2020-11-10 05:04:50

标签: java android audio-streaming android-bluetooth headset

我正在录制来自蓝牙耳机的音频。我想在有线耳机上实时播放录制的音频。如何将音频定向到有线耳​​机。

我正在使用下面的代码定向音频。

mAudioManager.setSpeakerphoneOn(false);
mAudioManager.setWiredHeadsetOn(true);
mAudioManager.setRouting(AudioManager.MODE_IN_COMMUNICATION, AudioManager.ROUTE_HEADSET,AudioManager.ROUTE_BLUETOOTH_SCO );

以上代码可在android 5版上使用,但不适用于android 7以上版本。

需要帮助:

  1. 为什么它不能在新的android版本中工作
  2. 如何使它在较新的版本上工作。

1 个答案:

答案 0 :(得分:0)

我使用下面的代码解决了它。它适用于旧版本,但较新版本的定向到有线耳​​机的音频却比较吵。我将尝试解决噪声问题并更新答案。

AudioDeviceInfo[] devices = mAudioManager.getDevices(AudioManager.GET_DEVICES_OUTPUTS);
    if (devices  != null){
      for (AudioDeviceInfo device : devices)
         if (device.getType() == AudioDeviceInfo.TYPE_WIRED_HEADSET || device.getType() == AudioDeviceInfo.TYPE_WIRED_HEADPHONES) {
            audioTrack.setPreferredDevice(device);
            mAudioManager.setWiredHeadsetOn(true);
            mAudioManager.setSpeakerphoneOn(false);
          }
     }