文章目录
- 前言
- 一、方法1 使用 Qsound
- 1.添加都文件 直接报错
- 2.解决这个错误 添加 QT += multimedia
- 3. 加入代码又遇到新的错误
- 小结
- 二、第二种方法
- 1.引入库
- 2.添加资源
- 2.1依次点击Qt--->Qt Resource File--->Choose
- 2.2给资源文件起个名字,如:res,在点击下一步
- 2.3 下次需要添加资源
- 3.添加资源无法播放问题
- 3.1遇到问题:用下面语句无论怎么更换地址都没法播放声音
- 3.2解决问题
- 4.添加资源路径技巧
- 总结
前言
遇到一个需求,使用Qt输出报警声,于是试一试能调用的方法。
一、方法1 使用 Qsound
1.添加都文件 直接报错
#include
直接添加头文件
结果马上报错
2.解决这个错误 添加 QT += multimedia
QT += multimedia
问题解决
3. 加入代码又遇到新的错误
#include "widget.h"#include <QApplication>
#include <QSound>
//#include <QCoreApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;// 播放系统默认的报警声音
// QSound sound("alert"); // 系统默认警告声
// sound.play();// 播放 Windows 的默认报警声音QSound sound("SystemExclamation"); // 系统警告声sound.play();w.show();return a.exec();
}
小结
竟然不能用,应该是找不到文件路径,之类的,时间比较赶,就先搞另外一种方法,有空再来测试
二、第二种方法
调用MP3,播放
1.引入库
代码如下(示例):
#include "widget.h"
#include <QApplication>
#include <QSound>
#include <QMediaPlayer>
#include <QAudioOutput>
int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;// 创建 QMediaPlayer 实例QMediaPlayer *player = new QMediaPlayer;// 设置要播放的 MP3 文件路径player->setMedia(QUrl::fromLocalFile("E:/QTcode/liugang/baojing/baojing/shengyin.mp3"));// 开始播放player->play(); w.show();return a.exec();
}
2.添加资源
2.1依次点击Qt—>Qt Resource File—>Choose
2.2给资源文件起个名字,如:res,在点击下一步
2.3 下次需要添加资源
3.添加资源无法播放问题
3.1遇到问题:用下面语句无论怎么更换地址都没法播放声音
player->setMedia(QUrl::fromLocalFile("qrc:/mp3/shengyin.mp3")); //://shengyin.mp3
怀疑是资源添加有问题:有折腾了一下,先显示一张图片
在Qt中,您可以使用`QLabel`和`QPixmap`来读取并显示一张图片。以下是一个简单的例子,展示了如何使用这些类来显示一张图片:1. **包含必要的头文件**:```cpp
#include <QApplication>
#include <QLabel>
#include <QPixmap>
- 读取并显示图片:
int main(int argc, char *argv[]) {QApplication app(argc, argv);// 创建一个QLabel对象QLabel *label = new QLabel;// 创建一个QPixmap对象并加载图片QPixmap pixmap("path/to/your/image.jpg");// 将图片设置为QLabel的背景label->setPixmap(pixmap);// 显示QLabellabel->show();return app.exec();
}
结果显示图片没问题
3.2解决问题
将读取MP3文件的函数修改一下
将这句修改: player->setMedia(QUrl::fromLocalFile(“qrc:/mp3/shengyin.mp3”)); //😕/shengyin.mp3
修改成:player->setMedia(QUrl(“qrc:/mp3/shengyin.mp3”)); //😕/shengyin.mp3
#include "widget.h"
#include "ui_widget.h"
#include <QMediaPlayer>
#include <QLabel>
#include <QPixmap>
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 创建 QMediaPlayer 实例QMediaPlayer *player = new QMediaPlayer;//player->setMedia(QUrl::fromLocalFile("D:/QTcode/gou/baojing/baojing/baojing/shengyin.mp3"));//player->setMedia(QUrl::fromLocalFile("qrc:/mp3/shengyin.mp3")); //://shengyin.mp3player->setMedia(QUrl("qrc:/mp3/shengyin.mp3")); //://shengyin.mp3// 开始播放player->play();// 创建一个QLabel对象QLabel *label = new QLabel;// 创建一个QPixmap对象并加载图片QPixmap pixmap(":/mp3/moban.jpg"); //://mp3/moban.jpg// 将图片设置为QLabel的背景label->setPixmap(pixmap);// 显示QLabellabel->show();
}Widget::~Widget()
{delete ui;
}
4.添加资源路径技巧
总结
继续加油