问题:以下调用不会使QMediaPlayer播放任何声音。
player->setMedia(QUrl("qrc:/snd/coin-refund.mp3"));
player->play();其中player的类型为QMediaPlayer*。其中URL是使用QtCreator复制URL选项生成的。因此,该文件肯定在.qrc文件中。
详细信息:
我有一个从QObject派生的类,如下所示:
class MyClass : public QObject
{
Q_OBJECT
// some stuff
private:
QMediaPlayer* player;
}在QMediaPlayer构造函数中调用MyClass标准构造函数,如下所示.
MyClass::MyClass() :
player(new QMediaPlayer)
{
}..。导致运行时出现以下错误消息(应用程序编译时没有任何警告)
QObject::startTimer:定时器只能用于以QThread启动的线程
删除播放机将删除此消息(我尚未显式创建任何QThreads或QTimers)。
在我的.pro文件中有:
QT += core gui webkitwidgets multimedia multimediawidgets widgets附加信息:I在Arch上,使用QtCreator 4.2.2和QT5.8.0
编辑:
发布于 2017-05-19 19:15:07
问题似乎是,对象没有在构造函数中正确启动,这是我到目前为止找到的解决方案,每次您想要执行play()时都要创建该对象。
void automaton::vendorSlot(const unsigned int buttonPressed)
{
player = new QMediaPlayer;
switch (buttonPressed)
[...]https://stackoverflow.com/questions/44075476
复制相似问题