Multimedia 概述

Qt 提供多媒体支持通过 Qt Multimedia 模块。Qt Multimedia 模块提供丰富特征集,使您能够轻松利用平台的多媒体能力,譬如:媒体回放和使用摄像头设备。

特征

这里是采用 Qt Multimedia API 可以做的一些事情:

  • 访问原生音频设备为输入/输出。
  • 播放低延迟音效。
  • 播放 playlist 媒体文件 (譬如:压缩的音频或视频文件)。
  • 录制音频并压缩它。
  • 使用摄像头 (包括取景器) 捕获图像 录制影片
  • 将音频媒体文件解码到内存中进行处理。

多媒体组件

Qt Multimedia API 分为 3 个主要组件。概述页面有为每组件提供更多特定信息。您也可以查看一些 配方 .

多媒体配方

一些快速配方,见下表:

用例 范例 QML 类型 C++ 类
播放音效 SoundEffect QSoundEffect
播放编码音频 (MP3 AAC 等) player MediaPlayer QMediaPlayer
以低延迟播放原生音频数据 audiosource , spectrum QAudioSink
访问原生音频输入数据 spectrum , audiosource QAudioSource
录制编码音频数据 audiorecorder CaptureSession , AudioInput , MediaRecorder QMediaCaptureSession , QAudioInput , QMediaRecorder
探索音频和视频设备 audiodevices MediaDevices , audioDevice , cameraDevice QMediaDevices , QAudioDevice , QCameraDevice
视频回放 player , mediaplayer MediaPlayer , VideoOutput , 视频 QMediaPlayer , QVideoWidget , QGraphicsVideoItem
捕获音频和视频 camera , recorder CaptureSession , Camera , AudioInput VideoOutput QMediaCaptureSession , QCamera , QAudioInput , QVideoWidget
捕获照片 camera , recorder CaptureSession , Camera , ImageCapture QMediaCaptureSession , QCamera , QImageCapture
捕获影片 camera , recorder CaptureSession , Camera , MediaRecorder QMediaCaptureSession , QCamera , QMediaRecorder

局限性

Qt Multimedia API 构建于底层平台的多媒体框架之上。这可能意味着不同机器对各种编解码器或容器的支持,会有所不同。这种支持从属最终用户有安装了什么。

先前版本的变化

若之前在 Qt 5 中使用过 Qt Multimedia,见 Qt Multimedia 的变化 了解改变了什么的更多信息,及将代码移植到 Qt 6 时可能需要改变什么。

参考文档编制

QML 类型

访问 QML 类型,通过使用:

import QtMultimedia
					

多媒体类

QAudio 包含用于音频类的枚举
QAudioBuffer 表示具有特定格式和采样率的一批音频样本
QAudioDecoder 实现解码音频
QAudioDevice 音频设备及其功能的有关信息
QAudioFormat 存储音频流参数信息
QAudioInput 表示音频的输入通道
QAudioOutput 表示音频的输出通道
QAudioSink 把音频数据发送到音频输出设备的接口
QAudioSource 从音频输入设备接收音频数据的接口
QCamera 系统摄像头设备接口
QCameraDevice 有关摄像头设备的一般信息
QCameraFormat 描述摄像头设备所支持的视频格式
QGraphicsEffect 用于所有图形效果的基类
QGraphicsVideoItem 显示由 QMediaPlayer 或 QCamera 产生的视频的图形项
QImageCapture 用于录制媒体内容
QMediaCaptureSession 允许捕获音频/视频内容
QMediaDevices 可用多媒体输入和输出设备的有关信息
QMediaFormat 描述多媒体文件或流的编码格式
QMediaPlayer 允许播放媒体文件
QMediaRecorder 用于编码和录制捕获会话
QMediaTimeRange 表示一组零个或多个不相交的时间间隔
QMediaTimeRange::Interval QMediaTimeRange::Interval 类表示采用整数精度的时间间隔
QPlatformAudioSink 音频后端基类
QPlatformAudioSource 用于 QAudioSource 访问由插件提供的音频设备
QSoundEffect 播放低延迟音效的办法
QStaticText 当文本及其布局很少更新时,启用优化文本绘制
QVideoFrame 表示视频数据帧
QVideoFrameFormat 指定视频呈现表面的流格式
QVideoSink 表示视频数据的一般汇点
QVideoWidget 呈现媒体对象产生视频的小部件