Проигрываем mp3 из ресурсов в QT4 и QT5

При переходе из QT4 на QT5 была сломана обратная совместимость при проигрывании звука — был убран модуль phonon, вместо него предлагается модуль multimedia. Для того чтобы код работал и «там и там», можно воспользоваться следующим вариантом.

*.pro:

QT+= core \
    gui \
    network \
    widgets 
lessThan (QT_MAJOR_VERSION, 5): QT += phonon
greaterThan (QT_MAJOR_VERSION, 5): QT += multimedia multimediawidgets

*.h:

...
#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:

....
#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
...

Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.