QAudioDeviceInfo::availableDevices does not refresh



在带有Ubuntu 14.04,Qt 5.5.0和Bluez 4.101-0ubuntu13.1的PC上,我正在尝试通过A2DP向BT接收器设备播放音频。

为此,我使用 Bluez 连接到这些设备,然后使用QAudioOutput与使用搜索输出检测到的设备播放QAudioDeviceInfo::availableDevices(QAudio::AudioOutput)。但是,第二次调用 QAudioDeviceInfo::availableDevices(QAudio::AudioOutput) 输出后不会更改,并且需要重新启动应用程序才能刷新列表。由于我无法使用 ALSA 硬件设备的自定义参数创建QAudioDeviceInfo(输入到QAudioOutput),因此无法将音频流式传输到新的 A2DP 接收器设备。

有人遇到过这个问题吗?是否有解决方案或解决方法?我将不胜感激。

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

或者,您可以将主应用程序仅用作其他进程的控制器,从而避免了对大量IPC的需求,并不是说音频会成为问题,但仍然如此。

最新更新