使用QSound类
步骤:
1.pro文件中加入
QT += multimedia
2.窗体.h文件中加入QSound类的指针
QSound *sound;//私有对象
3.窗体.cpp文件中构造函数进行音乐播放
QString runPath = QCoreApplication::applicationDirPath();//获取当前exe所在路径
QString absDir = runPath + "/MainMusic.wav";
qDebug()<<absDir;
sound = new QSound(absDir,this);
this->sound->play();
错误1 :QSoundEffect(qaudio): Error decoding source
原因:路径只能是绝对路径
解决办法:由于考虑发布问题,不能写死,可以获得exe路径。将音乐放到debug中。
QString runPath = QCoreApplication::applicationDirPath();//获取当前exe所在路径
QString absDir = runPath + "/MainMusic.wav";
qDebug()<<absDir;
错误2:G:\sougou\SogouInput\Components\程序异常结束。
原因:Qsound指针没有初始化
解决办法:
sound = new QSound(absDir,this);
this->sound->play();
错误3 :QWidget: Must construct a QApplication before a QWidget
原因:在mainwindow构造函数之前先实例化了其他窗体。我本来是在login的窗体里面定义了一个bool变量表示是否登录,在mainwindow的其他按钮点击时需要用到,去判断,所以在mainwindow构造函数之前就定义了。
解决办法:在mainwindow之前可以声明,但在构造函数里面new即可。