В вашем приложении отсутствует
QCoreApplication
, если предполагается, что оно безголово QGuiApplication
для QtQuick, или QApplication
, еслион имеет виджеты
Q*Application
- обязательный компонент для большинства приложений Qt, так как он обрабатывает все события и сигналы в основном потоке.По этой причине у вас возникают ошибки QTimer
, так как Qt не смог заранее "обернуть" основной поток с помощью QThread
.
Просто добавьте его, а также app.exec();
вначни, и у тебя все будет хорошо.app.exec()
будет блокироваться до тех пор, пока ваше приложение не завершится.
Кроме того, экземпляры, которые вам нужны в течение всего срока службы приложения, обычно должны создаваться в стеке, а не в куче.
int main(int argc, char *argv[]) {
QCoreApplication app(argc, argv);
QMediaPlaylist list;
auto media = QUrl::fromLocalFile(QFileInfo("Filename.mp3").absoluteFilePath());
list.addMedia(media);
QMediaPlayer music;
music.setPlaylist(list);
music.play();
return app.exec();
}