Windows下使用QT播放音频文件的类有QMediaPlayer, QSound;
播放音频或者视频资源,工程需要设置: multimedia
笔者刚开始是使用类 QSound类来写的代码如下:
//-------获取音频文件路径(绝对路径)
QDir temDir(".\\Resources\\sound\\new_message.wav");
QString absDir = temDir.absolutePath();
absDir.replace(QString("/"), QString("\\"));
////---显示文件路径
//QLabel *label = new QLabel();
//label->setText(absDir);
//label->show();
//---播放音乐
QSound bell(absDir);
bell.paly();
说明: 在使用QSound类的时候, 这里要使用绝对路径,QSound类只能支持格式为.wav的音频文件。(这里有关于绝对路径与相对路径的详细说明)
结论:程序运行,笔者没有听见声音文件被播放。笔者机器的环境是: Windows8.1。
后面,笔者在虚拟机上测试, 在Unix下使用类QSound播放音频文件,OK,完美通过。(这里,在Unix下, QSound只能支持格式为 .wav的音频文件)。
笔者在Windows下使用Qt播放音频文件的方法如下:
采用类:QMediaPlayer
QMediaPlayer支持绝对路径与相对路径, 其支持的音频文件格式不仅是wav,QMediaPlayer还支持视频播放,视频文件的格式也支持常规视频格式。
笔者使用的测试代码如下(笔者采用的绝对路径):
//-------获取音频文件路径(绝对路径)
QDir temDir(".\\Resources\\sound\\new_message.wav");
QString absDir = temDir.absolutePath();
absDir.replace(QString("/"), QString("\\"));
////---显示文件路径
//QLabel *label = new QLabel();
//label->setText(absDir);
//label->show();
//---播放音乐
QMediaPlayer*musicPlayer = newmusicPlayer(this);
musicPlayer->setMedia(QUrl::fromLocalFile(absDir));
musicPlayer->setVolume(50); //设置声音大小。
musicPlayer->play();
这样,就能在Windows下使用QT播放音频文件了。
关于QMediaPlayer的更多学习,参看assistant