从蓝牙录制音频时在耳机上播放实时音频
Realtime audio playing on headphones while recording audio from bluetooth
我正在用蓝牙耳机录制音频。我想在我的有线耳机上实时播放这段录制的音频。如何将音频定向到有线耳机。
我正在使用以下代码来定向音频。
mAudioManager.setSpeakerphoneOn(false);
mAudioManager.setWiredHeadsetOn(true);
mAudioManager.setRouting(AudioManager.MODE_IN_COMMUNICATION, AudioManager.ROUTE_HEADSET,AudioManager.ROUTE_BLUETOOTH_SCO );
以上代码适用于 android 版本 5,但不适用于 android 版本 7 及更高版本。
需要帮助:
- 为什么它在新的 android 版本中不起作用
- 如何让它在新版本上运行。
我用下面的代码解决了它。它非常适合旧版本,但在新版本中定向到有线耳机的音频很嘈杂。我会尝试解决噪音问题,并会更新答案。
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);
}
}
我正在用蓝牙耳机录制音频。我想在我的有线耳机上实时播放这段录制的音频。如何将音频定向到有线耳机。
我正在使用以下代码来定向音频。
mAudioManager.setSpeakerphoneOn(false);
mAudioManager.setWiredHeadsetOn(true);
mAudioManager.setRouting(AudioManager.MODE_IN_COMMUNICATION, AudioManager.ROUTE_HEADSET,AudioManager.ROUTE_BLUETOOTH_SCO );
以上代码适用于 android 版本 5,但不适用于 android 版本 7 及更高版本。
需要帮助:
- 为什么它在新的 android 版本中不起作用
- 如何让它在新版本上运行。
我用下面的代码解决了它。它非常适合旧版本,但在新版本中定向到有线耳机的音频很嘈杂。我会尝试解决噪音问题,并会更新答案。
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);
}
}