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 文件)中加入如下语句:

cpp 复制代码
QT += multimedia 
QT += multimediawidgets

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

cpp 复制代码
#include <QtMultimedia> 
#include <QtMultimediaWidgets>

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

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

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

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

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

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

参考

QT6 C++ 开发指南

相关推荐
RTC实战笔记18 小时前
实时互动数字人怎么做,才不是一个只会说话的视频?
音视频·数字人·rtc·数字人接入
用户805533698032 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
xcyxiner2 天前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
Quz7 天前
QML Hello World 入门示例
qt
xcyxiner10 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner11 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner11 天前
DicomViewer (添加模型类)3
qt
xcyxiner12 天前
DicomViewer (目录调整) 2
qt
xcyxiner12 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
RTC实战笔记13 天前
Android 实时音视频接入教程:媒体补充增强信息(SEI)
音视频·媒体·rtc