QAudioDeviceInfo :: availableDevices不刷新

时间:2016-02-09 07:30:47

标签: c++ qt ubuntu alsa bluez

在具有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接收设备。

有没有人遇到过这个问题?有解决方案或解决方法吗? 我很感激你的帮助。

1 个答案:

答案 0 :(得分:0)

我想到了一种可能且简单易用的解决方法,尽管它有点笨拙。您可以使用单独的过程并使用IPC在主应用程序进程和音频输出过程之间传输数据。这样您就可以重新启动进程并检测新连接的音频设备,而无需退出主应用程序。

或者您可以将主应用程序仅用作另一个进程的控制器,从而避免使用广泛的IPC,而不是音频仍然是一个问题但仍然存在。