首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QMediaplayer:没有声音

QMediaplayer:没有声音
EN

Stack Overflow用户
提问于 2017-05-19 17:06:23
回答 1查看 1.8K关注 0票数 1

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

代码语言:javascript
复制
player->setMedia(QUrl("qrc:/snd/coin-refund.mp3"));
player->play();

其中player的类型为QMediaPlayer*。其中URL是使用QtCreator复制URL选项生成的。因此,该文件肯定在.qrc文件中。

详细信息:

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

代码语言:javascript
复制
class MyClass : public QObject
{
    Q_OBJECT
    // some stuff
    private:
    QMediaPlayer* player;
 }

在QMediaPlayer构造函数中调用MyClass标准构造函数,如下所示.

代码语言:javascript
复制
MyClass::MyClass() :
    player(new QMediaPlayer)
{
}

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

QObject::startTimer:定时器只能用于以QThread启动的线程

删除播放机将删除此消息(我尚未显式创建任何QThreads或QTimers)。

在我的.pro文件中有:

代码语言:javascript
复制
QT += core gui webkitwidgets multimedia multimediawidgets widgets

附加信息:I在Arch上,使用QtCreator 4.2.2和QT5.8.0

编辑:

github链接

ldd输出(巴斯特宾)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-19 19:15:07

问题似乎是,对象没有在构造函数中正确启动,这是我到目前为止找到的解决方案,每次您想要执行play()时都要创建该对象。

代码语言:javascript
复制
void automaton::vendorSlot(const unsigned int buttonPressed)
{
    player = new QMediaPlayer;
    switch (buttonPressed)
    [...]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44075476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档