当前位置: 首页 > article >正文

QT多媒体开发(一):概述

Qt Multimedia 模块为多媒体编程提供支持。多媒体编程实现的功能主要包括播放音频和视频文件,通过麦克风录制音频,通过摄像头拍照和录像等。

QT6 中多媒体模块相比QT5变化较大,所以用QT6编译 QT5写的多媒体 程序基本无法通过。

Qt 5 多媒体模块使用的是基于插件的结构,不同的前端(frontend)使用不 同的插件,要实现一个完整的多媒体后端(backend)需要至少 4 个插件,而且后端的 API 对用户开放。

Qt 6 多媒体模块完全放弃了基于插件的基础结构,它只有一个后端,后端只与操作系统有关(Linux

上是 GStreamer,Windows 上是 WMF,macOS 和 iOS 上是 AVFoundation,Android 上是Android 多 媒体 API), 且后端对用户是隐藏的,这样便于对后端进行修改和扩展。用户通过统一的前端 API 编程,在编译时就确定使用的后端,实现了真正的跨平台。

使用 Qt 6 多媒体模块可以实现如下功能。

• 访问原始音频设备并进行输入或输出。

• 播放低延迟的音效文件,如 WAV 音效文件。

• 播放压缩的音频和视频文件,如 MP3、MP4、WMV 等格式的文件。

• 录制音频并进行压缩,生成 MP3、WMA 等格式的文件。

• 使用摄像头进行预览、拍照和录像。

• 将音频文件解压到内存中用于处理。

Qt 6 多媒体模块包含两个子模块:Qt Multimedia 模块提供了多媒体编程用到的大部分类;Qt Multimedia Widgets 模块提供了多媒体编程中用到的界面组件类。要在项目中使用这两个模块,需要在项目配置文件(.pro 文件)中加入如下语句:

QT += multimedia 
QT += multimediawidgets

在头文件中使用include包含即可

#include <QtMultimedia> 
#include <QtMultimediaWidgets>

Qt 6 多媒体模块中一些主要的 C++类的功能如下表所示:

使用 Qt 多媒体模块提供的这些类可以实现各种应用,下表是多媒体典型应用功能和用到的类:

利用 Qt 多媒体模块提供的各种类,可以实现一般的音频、视频的输入和输出,这在一些实际

应用中是很实用的,例如,语音识别需要录制音频并对原始音频数据进行处理,车牌自动识别需

要先拍照然后进行图像处理等。

(后续章节将会介绍一些简单的音视频播放和录制)

参考

QT6 C++ 开发指南


http://www.kler.cn/a/449489.html

相关文章:

  • 干货分享:ISO 20000认证的适用范围、认证资料清单、认证流程等问题详解
  • YoloV8改进策略:Head改进|DynamicHead,利用注意力机制统一目标检测头部|即插即用
  • GraalVM完全指南:云原生时代下使用GraalVM将Spring Boot 3应用转换为高效Linux可执行文件
  • 【机器学习】探索机器学习与人工智能:驱动未来创新的关键技术
  • C的编译过程有哪些步骤?
  • GM_T 0039《密码模块安全检测要求》题目
  • 数据流图和流程图的区别
  • Vue.js 表单处理
  • 3.1、SDH的5种标准容器
  • CentOS常见命令
  • Note2024122001_Excel按成绩排名
  • 【YashanDB知识库】insert语句有编码不识别字,执行卡住问题
  • 掌握命令行参数的艺术:Python的`argparse`库
  • Java 连接 FTP 服务器全解析
  • 35道面向初中级前端的基础面试题
  • 汉塔上网行为管理 ping.php 远程命令执行漏洞复现(附脚本)
  • 计算机毕设-基于springboot的校园招聘网站的设计与实现(附源码+lw+ppt+开题报告)
  • Python毕业设计选题:基于Python的社区爱心养老管理系统设计与实现_django
  • VScode中配置ESlint+Prettier详细步骤(图文详情)
  • 重温设计模式--建造者模式
  • 基于矩阵乘积态的生成模型:量子力学与生成任务的结合
  • Transformer自注意力机制详解
  • Rust之抽空学习系列(五)—— 所有权(上)
  • 《点点之歌》“意外”诞生记
  • 【学术小白的学习之路】基于情感词典的中文句子情感分析(代码词典获取在结尾)
  • springboot+vue的高校宿舍管理系统