QMediaPlayer 和 gstreamer 导致系统崩溃
Posted
技术标签:
【中文标题】QMediaPlayer 和 gstreamer 导致系统崩溃【英文标题】:System crash with QMediaPlayer and gstreamer 【发布时间】:2014-11-13 16:07:15 【问题描述】:我目前正在编写一个带有内置音频播放器的应用程序。
当我设置 QMediaPlayer
时,我(总是)收到以下错误:
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
有一些关于此的谷歌搜索结果,但我没有找到任何解决方案来解决它。 请注意,我不使用千斤顶。
到目前为止,我可以忍受该错误消息,但还有一个更糟糕的问题。大多数情况下,该应用程序运行良好并按预期运行,但偶尔会冻结。整个系统冻结。我可以转动鼠标(帧速率很差),但我不能点击任何东西或与任何其他程序交互。即使使用Ctrl+Alt+F1
切换到文本终端也无济于事,这让我认为驱动程序或内核模块应该有问题。
我在调试和发布模式下尝试了mp3
和vorbis
,有和没有调试器。总是一样。
没有额外的警告、错误等。
从控制台启动应用程序时也会出现该错误(之前运行的可执行文件没有任何问题)。
系统:
Linux t420s 3.16-3-amd64 #1 SMP Debian 3.16.5-1 (2014-10-10) x86_64 GNU/Linux
Qt 5.1.1, C++11
qmake:
qmake .../CAN.pro -r -spec linux-g++-64 CONFIG+=debug
导致问题的部分代码:
QMediaPlayer* _player = 0;
_player = new QMediaPlayer(this);
...
QFile tmpFile(filename);
tmpFile.open(QIODevice::ReadWrite);
tmpFile.write(_mediaFile);
_player->setMedia(QUrl::fromLocalFile(filename)); // <-- this line causes the freezing
上一次系统更新/升级是在 2014 年 11 月 9 日。
顺便说一句,整个项目都是公开的hosted on github。我也问了同样的问题here,但没有得到任何答案。抱歉多发帖。
【问题讨论】:
【参考方案1】:一两个月前,由于不相关的原因,我不得不重新安装系统。我决定安装 Ubunutu 14.04 而不是 Debian。
从那以后,该错误不再出现。所以我想这个问题已经解决了。虽然我很高兴知道原因......
【讨论】:
以上是关于QMediaPlayer 和 gstreamer 导致系统崩溃的主要内容,如果未能解决你的问题,请参考以下文章
QMediaPlayer 和 QVideoWidget 的糟糕表现
如何从 QT 中的 RTSP 流中解析 ONVIF 元数据?