Qt的QMediaPlayer无法播放mp3

时间:2014-10-06 17:35:45

标签: macos qt qmediaplayer

我使用Qt 5.3.2的QMediaPlayer在OSX 10.10下播放MP3文件,直到现在我还没有能够播放任何内容。

我使用的代码大致如下:

player = new QMediaPlayer;
player->setMedia(QUrl(soundName));
qDebug()<<soundName;
player->setVolume(50);
player->play();

使用它时,我在&#34;应用程序输出&#34;中得到此错误面板:

[19:32:52.144] FigByteFlumeCustomURLOpen signalled err=-12936 (kFigByteFlumeError_BadState) (no provider) at /SourceCache/CoreMedia/CoreMedia-1562.19/Prototypes/FigHTTP/FigByteFlumeCustomURL.c line 1486

完全相同的代码与Windows 8完美配合。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

前一段时间找到答案,将其发布在此处以备将来参考。

这个想法是Qt无法从资源中播放mp3文件。首先需要将文件复制到临时文件夹。这是一种将资源文件“mp3”文件夹中的文件加载到临时文件的方法:

bool Dialog::loadFiles() {
    bool success = true;

    //through mp3 folder of resources
    QDir rsc(":/mp3");
    QStringList files = rsc.entryList(QStringList()<<"*.mp3", QDir::Files);

    tmpPath = QDir::toNativeSeparators(QDir::tempPath());

    foreach(QString s, files) {
        QString srcPath = QString(":/mp3/%1").arg(s);
        QString destPath = QString("%1\\%2").arg(tmpPath).arg(s);
        mp3Files.insert(s, destPath);
        if (!QFile::exists(destPath))
            success &= QFile::copy(srcPath, destPath);
    }

    return success;
}