文章目录
- 前言
- 一、方法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);
// 显示QLabel
label->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.mp3
player->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);
// 显示QLabel
label->show();
}
Widget::~Widget()
{
delete ui;
}
4.添加资源路径技巧
总结
继续加油