Извините, если у меня не все вопросы, но я новичок в Qt. Итак, у меня есть консольное приложение на QT, и я использую c ++. Я хочу создать текстовую мини-игру, и мне нужна фоновая музыка c. Я использовал для этого класс QT QMediaPlayer, и он работал ... но я понимаю, что не могу l oop musi c. Я нашел еще один класс QT для этого QMediaPlaylist. А вот функция l oop не работала (играла всего один раз). Я пробовал это в приложении maindwindow, и если я использовал его в mainwindow. cpp, он работал нормально. И я не знаю почему, и в чем моя вина? Пробовал вот так:
main. cpp
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Menu();
return a.exec();
}
menu. cpp
Menu::Menu(QObject *parent) : QObject(parent)
{
///...........
this->mp = new MediaPlay();
mp->PlayMusic("backgroundmusic.mp3");
///...........
}
Mediaplay. cpp
MediaPlay::MediaPlay(QObject *parent) : QObject(parent)
{
}
void MediaPlay::PlayMusic(QString name)
{
this->playlist = new QMediaPlaylist(this);
this->settings = new QSettings(QDir::currentPath() + "/settings.ini", QSettings::IniFormat);
playlist->addMedia(QUrl::fromLocalFile(".//res//"+name));
playlist->setPlaybackMode(QMediaPlaylist::PlaybackMode::Loop);
this->player = new QMediaPlayer(this);
player->setVolume(settings->value("iVolume").toInt());
player->setPlaylist(playlist);
player->play();
}
void MediaPlay::SetVolume(int valume)
{
settings->setValue("iVolume",valume);
player->setVolume(valume);
}
ОБНОВЛЕНИЕ
У меня есть функция выхода в классе меню. В функции выхода я вызываю «qApp-> quit ();» а потом не закрывать консоль, она начинает играть фоновую музыку c в l oop ... но почему?