在具有Ubuntu 14.04的PC上,Qt 5.5.0& Bluez 4.101-0ubuntu13.1,我正试图通过A2DP向BT sink设备播放音频。
为此,我使用Bluez连接到这些设备,然后使用QAudioOutput
使用QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)
输出上的搜索检测到设备来播放它。
但是,QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)
输出在第二次调用后不会更改,并且需要重新启动应用程序才能刷新列表。由于我无法使用ALSA hw设备的自定义参数创建QAudioDeviceInfo
(输入QAudioOutput
),因此我无法将音频流式传输到新的A2DP接收设备。
有没有人遇到过这个问题?有解决方案或解决方法吗? 我很感激你的帮助。
答案 0 :(得分:0)
我想到了一种可能且简单易用的解决方法,尽管它有点笨拙。您可以使用单独的过程并使用IPC在主应用程序进程和音频输出过程之间传输数据。这样您就可以重新启动进程并检测新连接的音频设备,而无需退出主应用程序。
或者您可以将主应用程序仅用作另一个进程的控制器,从而避免使用广泛的IPC,而不是音频仍然是一个问题但仍然存在。