play(); -6ren">
gpt4 book ai didi

c++ - QMediaplayer:没有声音

转载 作者:行者123 更新时间:2023-11-30 03:31:39 28 4
gpt4 key购买 nike

问题:以下调用不会让 QMediaPlayer 播放任何声音。

player->setMedia(QUrl("qrc:/snd/coin-refund.mp3"));
player->play();

其中 playerQMediaPlayer* 类型。使用 QtCreator 复制 URL 选项生成 URL 的位置。所以该文件肯定在 .qrc 文件中。

详细信息:

我有一个派生自 QObject 的类,如下所示:

class MyClass : public QObject
{
Q_OBJECT
// some stuff
private:
QMediaPlayer* player;
}

像这样在 MyClass 构造函数中调用 QMediaPlayer 标准构造函数...

MyClass::MyClass() :
player(new QMediaPlayer)
{
}

...在运行时导致以下错误消息(应用程序编译时没有任何警告)

QObject::startTimer: Timers can only be used with threads started with QThread

删除播放器会删除此消息(我没有明确创建任何 QThreads 或 QTimers)。

在我的 .pro 文件中我有:

QT += core gui webkitwidgets multimedia multimediawidgets widgets

附加信息: 我在 Arch Linux 上,使用 QtCreator 4.2.2 和 Qt 5.8.0

编辑:

github link

ldd output (pastebin)

最佳答案

问题似乎是对象没有在构造函数中正常启动,目前我找到的解决方案是每次你想做play()时都创建对象。

void automaton::vendorSlot(const unsigned int buttonPressed)
{
player = new QMediaPlayer;
switch (buttonPressed)
[...]

关于c++ - QMediaplayer:没有声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44075476/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com