かなり簡単にできる。

まず、プロジェクトファイル(*.pro)に

QT += multimedia

を追加する。

基本的には、これで再生できる。

    auto mp = new QMediaPlayer();
    mp->setMedia(QUrl::fromLocalFile("hoge.mp3"));
    mp->setVolume(100);
    mp->play();

簡単www

再生が終わったら、アプリを終了するようにするには、stateChangedシグナルをとってStoppedStateで終了するようにすればいい。

    connect(mp, &QMediaPlayer::stateChanged, [=](QMediaPlayer::State status)->void {
        switch (status) {
        case QMediaPlayer::StoppedState:
            qDebug() << "StoppedState";
            mp->deleteLater();
            app->quit();
            break;
        case QMediaPlayer::PlayingState:
            qDebug() << "PlayingState";
            break;
        case QMediaPlayer::PausedState:
            qDebug() << "PausedState";
            break;
        }
    });

一応、ソース全体を示しておく。

appmain.h

#ifndef APPMAIN_H
#define APPMAIN_H

#include <QObject>
#include <QCoreApplication>

class AppMain : public QObject
{
    Q_OBJECT
public:
    explicit AppMain(QObject *parent, QCoreApplication *coreApp);

signals:

public slots:
    void run();

private:
    QCoreApplication *app;
};

#endif // APPMAIN_H

appmain.cpp

#include "appmain.h"
#include <QMediaPlayer>
#include <QDebug>

AppMain::AppMain(QObject *parent, QCoreApplication *coreApp) : QObject(parent) ,app(coreApp)
{

}

void AppMain::run() {
    auto mp = new QMediaPlayer();
    connect(mp, &QMediaPlayer::stateChanged, [=](QMediaPlayer::State status)->void {
        switch (status) {
        case QMediaPlayer::StoppedState:
            qDebug() << "StoppedState";
            mp->deleteLater();
            app->quit();
            break;
        case QMediaPlayer::PlayingState:
            qDebug() << "PlayingState";
            break;
        case QMediaPlayer::PausedState:
            qDebug() << "PausedState";
            break;
        }
    });
    connect(mp, QOverload<QMediaPlayer::Error>::of(&QMediaPlayer::error),
         [](QMediaPlayer::Error error){
        qDebug() << "ERROR:" << error;
    });
    connect(mp, &QMediaPlayer::destroyed, [](QObject *)->void {
        qDebug() << "destoryed";
    });
    mp->setMedia(QUrl::fromLocalFile("hoge.mp3"));
    mp->setVolume(100);
    mp->play();
}

main.cpp

#include <QCoreApplication>
#include <QTimer>
#include "appmain.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    AppMain appMain(nullptr, &a);
//    QTimer::singleShot(0, &appMain, SLOT(run()));
    QTimer::singleShot(0, &appMain, &AppMain::run);


    return a.exec();
}