На ПК с Ubuntu 14.04, Qt 5.5.0 & Bluez 4.101-0ubuntu13.1, я пытаюсь воспроизводить аудио на приемниках BT через A2DP.
Для этого я подключаюсь к этим устройствам с помощью Bluez, а затем играю на нем, используя QAudioOutput
с устройством, обнаруженным с помощью поиска на QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)
выход.
Тем не менее QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)
вывод не изменяется после вызова его в течение секунды и требует перезапуска приложения для обновления списка. Так как я не могу создать QAudioDeviceInfo
(для ввода в QAudioOutput
) с моими пользовательскими параметрами устройства ALSA hw я не могу передавать аудио на новые устройства-приемники A2DP.
Кто-нибудь сталкивался с этой проблемой? Есть ли решение или обходной путь?
Я буду признателен за помощь.
На ум приходит один из возможных и простых обходных путей, хотя он несколько хакерский. Вы можете использовать отдельный процесс и использовать IPC для передачи данных между основным процессом приложения и процессом вывода звука. Таким образом, вы можете перезапустить процесс и обнаружить новые подключенные аудиоустройства, не выходя из основного приложения.
Или вы можете использовать основное приложение как просто контроллер для другого процесса, избегая необходимости расширенного IPC, не то, что аудио будет проблемой, но все же.
Других решений пока нет …