linux系统中使用QT实现多媒体的功能方法

news2025/1/12 19:01:17

      大家好,今天主要和大家聊一聊,如何使用QT中的多媒体的功能。

            

 

目录

第一:多媒体基本简介

第二:应用实例实现

第三:程序运行效果


第一:多媒体基本简介

       QT的多媒体模块提供了音频,视频,录音,摄像头拍照和录像等功能,本文将介绍QT多媒体的功能和使用。

       从QT5开始,可以直接使用QT Multimedia 模块。我们可以Qt Multimedia 模块来提供的类实现跨平台的多媒体播放了。

       想要在 Qt 里使用使用 Qt 多媒体模块,需要在 pro 项目文件里添加如下语句。

QT += multimedia

        播放音效文件,比如简短的提示音(按键音等),可以使用 Qt 的 QSoundEffect 和 QSound 类来播放。 Qt 的 QSoundEffect 和 QSound 类主要区别是 QSound(异步方式播放)只能播放本地的 WAV 音效文件(WAV 音效文件是 PC 机上最为流行的声音文件格式,但其文件尺寸较大,多用于存 储简短的声音片段,具有低延时性,不失真的特点),QSoundEffect 不仅可以播放网络文件,也 可以播放本地音效文件,播放网络的文件一般使用到 QUrl 链接。

第二:应用实例实现

         通过点击一个按钮,然后使用QSound来播放音效文件,模仿按键按下的声音。

在头文件mainwindow.h的具体实现方法:

 #ifndef MAINWINDOW_H
 #define MAINWINDOW_H

 #include <QMainWindow>
 #include <QSound>
 #include <QPushButton>

class MainWindow : public QMainWindow
{
   Q_OBJECT

   public:
   MainWindow(QWidget *parent = nullptr);
   ~MainWindow();

   private:
   /* 按钮 */
   QPushButton *pushButton;

   private slots:
   /* 按钮点击槽函数 */
   void pushButtonClicked();

};
#endif // MAINWINDOW_H

       在源文件“mainwindow.cpp”具体代码如下:

1 #include "mainwindow.h"
2
3 MainWindow::MainWindow(QWidget *parent)
4 : QMainWindow(parent)
5 {
6 /* 设置主窗体的位置与大小 */
7 this->setGeometry(0, 0, 800, 480);
8
9 /* 实例化按钮 */
10 pushButton = new QPushButton(this);
11
12 /* 设置按钮文本 */
13 pushButton->setText("按钮音效测试");
14
15 /* 设置按钮的位置与大小 */
16 pushButton->setGeometry(340, 220, 120, 40);
17
18 /* 信号槽连接 */
19 connect(pushButton, SIGNAL(clicked()),
20 this, SLOT(pushButtonClicked()));
21 }
22
23 MainWindow::~MainWindow()
24 {
25 }
26
27 void MainWindow::pushButtonClicked()
28 {
29 /* 异步的方式播放 */
30 QSound::play(":/audio/bell.wav");
31 }

      直接使用QSound 的静态函数 play()播放,这种播放方式是异步的,可以多次点 击按钮连续听到点击的声音。

第三:程序运行效果

     单击按钮后,可以听到播放1秒左右的叮咚声,用此方法模拟单击按钮声音效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/156616.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式系统-CAP 理论

在前一篇分布式系统–拜占庭将军问题(The Byzantine Generals Problem) 我们理解了共识问题的背景&#xff0c;这一节主要讨论如何解决或者理解自己系统中的共识问题&#xff0c;通过什么来分辨自己的系统需要哪一种共识。 这个理论就是 CAP 理论&#xff0c;先想下面几个问题…

linux 线程详解

前言 程序运行在内存空间中叫进程&#xff0c;进程中包含有若干线程&#xff0c;线程是系统调度和执行的基本单位。线程才是程序运行的实体&#xff0c;通常程序里的main()函数就相当于主线程&#xff0c;把进程理解成一个容器&#xff0c;里面可以包含有若干线程和若干资源&am…

6)Mybatis启动流程

1. 首先Mybatis会加载配置文件mybatis-config.xml&#xff0c; 主要实现在Mybatis的builder模块&#xff0c;包路径org.apache.ibatis.builder&#xff0c;解析入口XMLConfigBuilder private void settingsElement(Properties props) {configuration.setAutoMappingBehavior(Au…

指针进阶篇(2)

进阶指针 &#x1f914;前言&#x1f914; 一、&#x1f60a;函数指针&#x1f60a; 二、&#x1f61c;函数指针数组&#x1f61c; 三 、&#x1f61d;指向函数指针数组的指针&#x1f61d; 四、&#x1f31d;回调函数&#x1f31d; &#x1f340;小结&#x1f340; &…

摩丝-题解

看到题目&#xff0c;怀疑是莫尔斯电码&#xff0c;打开发现果然是莫尔斯电码的点和划.. .-.. --- ...- . -.-- --- ..-简单说一下电报的原理最简单的电报模型就是一个电源&#xff0c;一个开关和一个电磁铁当需要长距离使用时候&#xff0c;需要用到继电器按下开关&#xff0c…

【BP靶场portswigger-服务端10】XML外部实体注入(XXE注入)-9个实验(全)

前言&#xff1a; 介绍&#xff1a; 博主&#xff1a;网络安全领域狂热爱好者&#xff08;承诺在CSDN永久无偿分享文章&#xff09;。 殊荣&#xff1a;CSDN网络安全领域优质创作者&#xff0c;2022年双十一业务安全保卫战-某厂第一名&#xff0c;某厂特邀数字业务安全研究员&…

C#【必备技能篇】使用NPOI实现对excel的读取和写入

文章目录1、Winform界面布局2、引用NPOI的dll3、源码4、运行效果5、NPOI的dll下载地址6、补充【以上步骤只能打开.xls文件&#xff08;97-2003版本&#xff09;&#xff0c;打不开.xlsx文件&#xff08;2007版本&#xff09;】1、Winform界面布局 2、引用NPOI的dll 3、源码 us…

(十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置

前言 本节内容我们主要介绍一下在jenkins中如何集成sonar qube代码质量检查工具&#xff0c;sonar qube可以在流水化项目集成部署前对我们的代码质量检查。开始本节内容前我们需要先搭建好sonar qube服务&#xff0c;关于sonar qube服务的搭建可参考作者往期博客内容&#xff…

P4391 [BOI2009]Radio Transmission 无线传输

题目描述 给你一个字符串 s_1s1​&#xff0c;它是由某个字符串 s_2s2​ 不断自我连接形成的。但是字符串 s_2s2​ 是不确定的&#xff0c;现在只想知道它的最短长度是多少。 输入格式 第一行一个整数 LL&#xff0c;表示给出字符串的长度。 第二行给出字符串 s_1s1​ 的一个子…

【linux入门】基础知识学习笔记

文章目录【第一章-宏观知识】1.硬件和软件的关系2.操作系统 是什么、作用是什么3.常见的操作系统4.Linux的诞生5.Linux内核 是什么6.Linux发行版 是什么7.WSL是什么8.虚拟机快照9.FinalShell&#xff08;Xshell替代品&#xff09;【第二章-Linux基础命令】1.Linux目录结构2.什么…

Linux---权限

目录 1.文件访问者的分类&#xff08;人/用户&#xff09; 2.文件类型和访问权限&#xff08;事物属性&#xff09; 3.文件权限值的表示方法 a)字符表示方法 b)8进制数值表示方法 4.文件访问权限的相关设置方法 4.1 改属性 4.2 改人&#xff08;改拥有者/所属组&#xff09;…

数组常用方法总结 (3) :map / forEach / every / some

map 遍历数组的每一项。如果是简单数组&#xff0c;不改变原始数组&#xff08;值类型&#xff09;。如果是对象数组&#xff0c;原始数组可以被改变&#xff08;引用类型&#xff09;。遍历原始数组&#xff0c;返回值为原始数组的每一项&#xff0c;最终可组合成新数组。 简…

LeetCode 78 子集 | 解题思路分享

原题链接&#xff1a;78. 子集 - 力扣&#xff08;LeetCode&#xff09; 题目难度&#xff1a;中等 题目描述 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。你可以按 任…

忆享聚焦|5G投资、网络安全市场、云计算、Web3技术……近期热点资讯一览

“忆享聚焦”栏目第11期来啦&#xff01;本栏目汇集近期互联网最新资讯&#xff0c;聚焦前沿科技&#xff0c;关注行业发展动态&#xff0c;筛选高质量讯息&#xff0c;拓宽用户视野&#xff0c;让您以最低的时间成本获取最有价值的行业资讯。目录行业资讯1. SA&#xff1a;全球…

ubuntu虚拟机VmWare与主机共享文件夹

一、说明&#xff1a; 宿主操作系统&#xff1a;Windows 11 64位。 客户操作系统&#xff1a;Ubuntu 18.04.1 64位。 虚拟机软件&#xff1a;VMware Workstation 17 pro 二、步骤&#xff1a; 1、参考教程链接1&#xff0c;在主机设置共享文件夹。 注意&#xff1a;教程链接…

聚焦技术,2022巨杉荣获国内外多家权威机构认可

作为分布式数据库的领先企业 巨杉成立十年来&#xff0c;一直聚焦分布式技术的自研与深耕 在分布式数据库领域已取得丰硕的成果 回望2022&#xff0c;巨杉除在客户案例及产品方面屡获殊荣外 也凭借过硬的技术实力及规模化的行业应用 得到多家国内外权威机构的认可 国际权威…

TensorRT学习笔记--基本概念和推理流程

目录 前言 1--Tensor RT基本概念 2--推理流程 3--实例代码 前言 以下 Tensor RT 的基本概念和推理流程均为博主自我的理解&#xff0c;可能部分内存会存在错误或偏差&#xff0c;仅供参考&#xff01; 1--Tensor RT基本概念 ① Logger&#xff1a;日志记录器&#xff0c;…

ssm:spring定时任务Task和CronExpression表达式

开发一个定时任务&#xff1a;每天晚上23点执行数据归集任务 首先Spring配置文件&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.or…

Java中的常用的代理模式

本文介绍在Java种常用的3种动态代理。 代理模式是23种模式中的一种&#xff0c;属于结构型设计模式。这种模式的作用就是要创建一个中间对象&#xff08;相当于中介或者代理对象&#xff09;&#xff0c;通过操作中间对象来间接调用目的对象的方法&#xff0c;字段等&#xff0…

Everything搜索知识总结

1.只知道那个文件以 .txt结尾 .*\.txt$ ($表示以什么结尾) 2.搜索某个路径下的文件 D:\ configure.bat (搜索D盘下的该文件,注意要用这种类型的"\",和被搜索的文件之间有空格;要先打出路径,再打出搜索文件.) 3.搜索指定路径下的多个文件 路径\ 文件1 | …