qt有许多类都可以进行播放音频文件,这里我主要讲QMediaPlayer类,如何在vs中进行播放音乐,所遇到的问题该如何解决!
QMediaPlayer可以对各种后缀的音频文件进行播放,包括 .wav .mp3等。
1. 向.pro文件中添加代码
由于vs中没有.pro文件,所以呢,vs中有另一种方式可以间接的向.pro文件中添加代码:就是通过头文件的方式!
#include <QtMultimedia/QMediaPlayer> // VS向.pro文件添加代码的方式
QtMultimedia:需要向.pro文件添加的代码
QMediaPlayer:使用该类需要添加的头文件
使用这种组合可以实现向 .pro文件中添加代码的功效!
2. 在项目属性中添加:Qt5Multimedia.lib
不操作此步骤,编译将无法通过!!!
依次点击:项目属性->链接器->输入->附加依赖项中输入Qt5Multimedia.lib
下图有详细步骤:
3. 定义QMediaPlayer对象播放音乐
这点非常重要,请耐心看下方解释!!!
在构造函数中添加如下代码:
QMediaPlayer *player = new QMediaPlayer;
// 设置媒体
// 方式一:不推荐使用
//player->setMedia(QMediaContent(QUrl("../testMusic/你的名字.wav")));
// 方式二:推荐使用
player->setMedia(QUrl::fromLocalFile("E:\\QTproject\\testMusic\\testMusic\\你的名字.wav"));
//player->setMedia(QUrl::fromLocalFile("D:\\music\\你的名字.mp3"));
//player->setVolume(50); // 设置音频播放的初始音量大小
player->play(); // 开始播放
player->play(); // 开始播放
player->pause(); // 暂停播放
player->stop(); // 停止播放,并将播放位置复位到开始位置
这里有两种方式可以设置媒体音乐,不推荐使用第一种方式,第一种方式只适用于音频文件在项目文件夹中;推荐使用第二种方式,第二种方式就宽松一点,音频文件可以在任何地方。
这里还有一点需要注意:
VS中Qt是不支持中文的,他的所有项目文件、文件夹都必须是英文,代码中的字符串也是如此。如果音频文件是中文,播放时是没有声音的;这里要么将音频文件名更改为英文,要么添加如下代码:
#pragma execution_character_set("utf-8") // qt支持显示中文
代码中加入此行代码,qt就支持中文了,音频文件就可以使用中文名了,但是,存储音频文件的文件夹必须是英文,否则也无法播放出声音!
在ui界面拖入的按钮或者标签之类的控件,如需显示中文,也可以加入此代码进行显示,否则也都是显示乱码!
如果想万无一失的播放音频文件,推荐如下:
按照上方第一第二步骤弄完后,立即在代码头文件下面添加如下代码:#pragma execution_character_set(“utf-8”),然后将需要播放的音频文件复制进项目文件夹中,只要设置媒体路径(setMedia())时没有搞错,就万无一失了!
总结:
严格按照上面三个步骤进行操作,项目中就一定可以播放出音乐,这是本人花了好几个小时琢磨出来的,记录下来给有遇到同样问题的家人们!
QSound类也可以进行音频播放,貌似也可以使用上面三个步骤进行完美无瑕的播放!本人没试过!
在此过程中有遇到任何问题都可以评论下来一起讨论解决!