Programming/qt2026. 3. 31. 10:17

mainwindow.h

#include <QAudioOutput>
#include <QMediaPlayer>

class MainWindow : public QMainWindow
{
private:
    Ui::MainWindow *ui;
    QMediaPlayer *player;
    QAudioOutput *audioOutput;
};

 

mainwindow.cpp

QAudioOutput을 넣어주지 않으면 재생되는것 처럼 보이는데 정작 소리가 안나온다.

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    player = new QMediaPlayer;
    audioOutput = new QAudioOutput;
    player->setAudioOutput(audioOutput);

    player->setSource(QUrl::fromLocalFile("/home/minimonk/src/qt/sounds/test.mp3"));
    // player->setSource(QUrl("qrc:/test/sounds/test.mp3"));
    audioOutput->setVolume(0.5);

    player->play();
}

[링크 : https://doc.qt.io/qt-6/ko/audiooverview.html]

[링크 : https://doc.qt.io/qt-6/ko/qmediaplayer.html]

[링크 : https://doc.qt.io/qt-6/ko/qaudiooutput.html]

 

test.pro

곱게(?) ui 내에서 추가하는 법 없나?

QT       += core gui multimedia

[링크 : https://vongole-pasta.tistory.com/56]

 

아무튼 이렇게 하면 창이 열리면서 음악이 재생된다.

 

QMediaPlaylist *playlist = new QMediaPlaylist();
playlist->addMedia(QUrl("qrc:/sounds/backgroundmusic.mp3"));
playlist->setPlaybackMode(QMediaPlaylist::Loop);

QMediaPlayer *music = new QMediaPlayer();
music->setPlaylist(playlist);
music->play();

[링크 : https://stackoverflow.com/questions/37690616/play-background-music-in-a-loop-qt]

 

요건 시그널/슬롯 이용

[링크 : https://makeutil.tistory.com/117]

'Programming > qt' 카테고리의 다른 글

qt ui loader  (0) 2026.04.01
qt widget fullscreen  (0) 2026.03.31
qt concurrent / qt thread  (0) 2026.03.30
Qtimer를 이용한 반복/1회성 이벤트 생성  (0) 2026.03.30
qt6 시그널  (0) 2026.03.30
Posted by 구차니