linux - 如何在 Qt5.5 中使用 gstreamer1.0 而不是 0.10?

标签 linux qt ubuntu-16.04 gstreamer qtmultimedia

我有一台笔记本电脑和一台电脑,我想测试 Media Player example Qt.
在我的笔记本电脑上,一切正常,但在我的电脑上,我收到以下消息:

no service found for - "org.qt-project.qt.mediaplayer"

我已经安装了 Multimedia Dependencies但它没有任何改变。
所以我试图通过使用突触来找到丢失的数据包,并且在两台计算机上,通过搜索 Gstreamer 得到了相同的结果:
gstreamer synaptic 我还创建了两个文件来与此命令进行比较:

apt list | grep inst > apt_list.txt
# and
apt list | grep inst > apt_list_laptop.txt
tkdiff apt_list.txt apt_list_laptop.txt

我找不到丢失的东西,我请求你的帮助找到它。

编辑:
我使用 QT_DEBUG_PLUGINS=1 运行程序,在计算机上我有:"QLibraryPrivate::loadPlugin failed on "/home/.../libgstmediaplayer.so"
也有人说它打不开libgstaudio-0.10.so.0,但是在笔记本上它使用的是1.0版本
并且有效地,当我写:

ldd libgstmediaplayer.so

它在我的电脑上与 gstreamer0.10 链接,在我的笔记本电脑上与 1.0 链接

最佳答案

我找到了原因,是因为 QtCreator 使用位于 /home/user/Qt/5.5/gcc_64/plugins/mediaservice/ 的库,但是这些库使用gstreamer 0.10 版本:

Qt Multimedia Module: Added GStreamer 1.0 support. Note that the default is still 0.10.

libqt5multimedia5-plugins 包中的库使用 1.0 版本。因此,要在没有“无服务”消息的情况下启动媒体播放器,我使用命令行进行了编译:

qmake player.pro && make

通过这种方式,qmake 使用系统库而不是位于 Qt 文件夹中的库。

关于linux - 如何在 Qt5.5 中使用 gstreamer1.0 而不是 0.10?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49348575/

相关文章:

python - 为什么在 Windows 上使用 python 套接字进行端口扫描比在 linux 上慢得多?

c++ - 系统头文件中的条件编译

linux - 如何找出是什么弄乱了我的语言环境设置?

c++ - Qt 未解析的外部符号 LNK2019

C++ QNetworkAccessManager (Qt) 结合 openGL

node.js - Nodejs 子进程以什么 Linux 用户身份运行?

node.js - 使用 nohup/supervise 命令的日志重定向问题

Qt mapToGlobal 和多个屏幕。他们如何互动?

Android studio 构建错误,在 ubuntu 中错误日志为 "process unexpectedly exit"

c# - 如何从 Linux 上运行的 .NET Core 应用程序关闭计算机