Проигрываем mp3 из ресурсов в QT4 и QT5
При переходе из QT4 на QT5 была сломана обратная совместимость при проигрывании звука — был убран модуль phonon, вместо него предлагается модуль multimedia. Для того чтобы код работал и «там и там», можно воспользоваться следующим вариантом.
*.pro:
1 2 3 4 5 6 |
QT+= core \ gui \ network \ widgets lessThan (QT_MAJOR_VERSION, 5): QT += phonon greaterThan (QT_MAJOR_VERSION, 5): QT += multimedia multimediawidgets |
*.h:
1 2 3 4 5 6 7 8 9 10 11 |
... #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) #include <Phonon/MediaObject> #include <Phonon/AudioOutput> #endif #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) #include <QMediaPlayer> #include <QDir> #include <QUrl> #endif ... |
*.cpp:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
.... #if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) qDebug() << "Через Phonon"; Phonon::MediaObject *music = Phonon::createPlayer(Phonon::MusicCategory,Phonon::MediaSource(QUrl("qrc:/sounds/Sound_21009.mp3"))); music->play(); #endif #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) qDebug() << "Через QMediaPlayer"; QMediaPlayer *player = new QMediaPlayer; player->setMedia(QUrl("qrc:/sounds/Sound_21009.mp3")); player->setVolume(100); player->play(); #endif ... |