#java #android #audio-streaming #android-bluetooth #headset
#java #Android #потоковое аудио #android-bluetooth #гарнитура
Вопрос:
Я записываю звук с 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
- Как я могу заставить его работать в более новых версиях.
Ответ №1:
Я решил это, используя приведенный ниже код. Он идеально подходит для старых версий, но звук, направленный на проводные наушники в более новой версии, является шумным. Я постараюсь решить проблему шума и обновлю ответ.
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);
}
}