答案1
我的 qt 应用程序尝试在 openbox 中播放 mp3 文件,但它出现 gstreamer 和 pulseaudio 相关错误。
所以我决定在 openbox 中启动我的应用程序,当它尝试播放 mp3 文件时,我的应用程序从 openbox 窗口管理器切换到 ubuntu 桌面(因为正如我在问题中提到的,当我在 gnome-desktop 会话(而不是 openbox 会话)中执行相同的过程时,它工作正常,我的应用程序播放 mp3 文件没有任何问题)并且它给了我上面提到的错误。
所以我开始思考“Pulse 音频管理器错误”。但在调试过程中,我发现从 openbox 切换到 ubuntu 桌面时出现问题,并导致上述错误。
因此,我运行下面的命令集,并在我的 qt 程序中重复相同的命令集 4-5 次,它解决了我的问题。这里的“nw”是 nodejs 程序,lighttpd 是它的 web 服务器。
pkill -f lighttpd
pkill -f nw
openbox --exit
现在我的应用程序在 openbox 中启动,在播放 mp3 文件之前,它切换到 ubuntu 桌面并播放 mp3 文件,没有任何问题和错误。
注意:我的应用程序启动了 lighttpd 和 nw。因此,如果我的应用程序没有终止 lighttpd 和 nw(如果出现上述错误),则错误仍然存在。这就是为什么我的应用程序要终止 lighttpd 和 nw 来解决错误。