QMediaPlaylist l oop в консоли в qt - PullRequest
0 голосов
/ 19 июня 2020

Извините, если у меня не все вопросы, но я новичок в 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 ... но почему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...