Qt 调试系统输出报警声以及添加资源

文章目录

  • 前言
  • 一、方法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
直接添加头文件
结果马上报错

Qt 调试系统输出报警声以及添加资源_第1张图片

2.解决这个错误 添加 QT += multimedia

QT += multimedia

问题解决

3. 加入代码又遇到新的错误

#include "widget.h"

#include 
#include 
//#include 

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 
#include 
#include 
#include 
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

Qt 调试系统输出报警声以及添加资源_第2张图片

2.2给资源文件起个名字,如:res,在点击下一步

Qt 调试系统输出报警声以及添加资源_第3张图片
Qt 调试系统输出报警声以及添加资源_第4张图片

Qt 调试系统输出报警声以及添加资源_第5张图片
Qt 调试系统输出报警声以及添加资源_第6张图片
Qt 调试系统输出报警声以及添加资源_第7张图片
Qt 调试系统输出报警声以及添加资源_第8张图片
Qt 调试系统输出报警声以及添加资源_第9张图片
Qt 调试系统输出报警声以及添加资源_第10张图片

Qt 调试系统输出报警声以及添加资源_第11张图片

2.3 下次需要添加资源

Qt 调试系统输出报警声以及添加资源_第12张图片

3.添加资源无法播放问题

3.1遇到问题:用下面语句无论怎么更换地址都没法播放声音

player->setMedia(QUrl::fromLocalFile("qrc:/mp3/shengyin.mp3"));  //://shengyin.mp3

怀疑是资源添加有问题:有折腾了一下,先显示一张图片

在Qt中,您可以使用`QLabel`和`QPixmap`来读取并显示一张图片。以下是一个简单的例子,展示了如何使用这些类来显示一张图片:

1. **包含必要的头文件**:


```cpp
#include 
#include 
#include 
  1. 读取并显示图片
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 
#include 
#include 
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.添加资源路径技巧

Qt 调试系统输出报警声以及添加资源_第13张图片

总结

继续加油

你可能感兴趣的:(Qt,开发,qt)