树莓派上用QT制作播放器出现:Warning: “找不到‘application/x-id3’类型可用的解码器。“ Error: “您的 GStreamer 安装缺少插件。“

我们一个课程实验要求我们在树莓派上用QT制作一个MP3播放器,在树莓派上可以直接播放音频文件,但是通过Qt却不能,最开始出现了
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
按照别人网上的方法,在终端上输入

sudo apt-get install  libqt5multimedia5-plugins

好了,上面那个问题没有了,又出现了这两个问题
Warning: “找不到‘application/x-id3’类型可用的解码器。”
Error: "您的 GStreamer 安装缺少插件。"

这两个问题太厉害了,我在网上怎么找也找不到合适的办法,要么太复杂了看不懂,要么没用。搞了我好久。

最后,终于在一个全英文的网页中找到了解决方法,不得不说外国友人还是有点用的,感谢他们。
这个是网页的网址。

https://stackoverflow.com/questions/46905768/gstreamer-warning-no-decoder-available-for-type-application-x-id3

在这里插入图片描述
这就是那哥们讲的,我按照他说的在终端安装好gstreamer1.0-plugins-ugly, gstreamer1.0-plugins-bad, gstreamer1.0-plugins-good and gstreamer1.0-pulseaudio,就可以播放音乐了。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
完整代码如下,其中释放信号量的部分已经包含在代码中: ```cpp #include <QtWidgets> #include <QLocalServer> #include <QSystemSemaphore> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 创建系统信号量 QSystemSemaphore semaphore("MyApplication", 1, QSystemSemaphore::Create); if (!semaphore.acquire()) { QMessageBox::warning(nullptr, "Warning", "Another instance is already running."); return 0; } // 创建本地服务器 QLocalServer localServer; if (!localServer.listen("MyApplication")) { QMessageBox::warning(nullptr, "Warning", "Unable to start the server: " + localServer.errorString()); semaphore.release(); // 释放信号量 return 0; } // 处理连接请求 QObject::connect(&localServer, &QLocalServer::newConnection, [&](){ QLocalSocket *socket = localServer.nextPendingConnection(); socket->write("Hello, world!"); socket->flush(); socket->waitForBytesWritten(); socket->close(); delete socket; }); // 显示主窗口 QMainWindow mainWindow; mainWindow.show(); // 释放信号量 semaphore.release(); return app.exec(); } ``` 在本例中,我们在创建系统信号量时指定了初始值为1,表示该信号量最多只能被一个进程同时持有。在程序启动时,我们首先使用`acquire()`函数尝试获取该信号量。如果获取失败,说明已经有一个实例在运行,我们就弹出一个警告窗口并退出程序。如果获取成功,我们就创建一个本地服务器并开始监听连接请求。在本地服务器收到连接请求时,我们会向客户端发送一条消息,然后关闭连接。在程序退出时,我们通过`release()`函数释放信号量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值