Windows下使用QMediaPlayer播放音乐

时间:2022-03-30 05:02:40

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