多媒体

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

特征

这里是 Qt Multimedia API 能做什么的一些范例:

  • 访问输入/输出原生音频设备
  • 播放低延迟音效
  • 播放 playlist 媒体文件 (譬如:压缩音频/视频文件)
  • 录制音频并压缩
  • 调整和收听无线电台
  • 使用摄像头 (包括取景器) 捕获图像 录制影片
  • 播放 3D 位置音频,采用 Qt Audio Engine
  • 把音频媒体文件解码到内存中进行处理
  • 在播放 (或录制) 视频帧/音频缓冲时,访问它们

多媒体组件

Qt 多媒体 API 分为 4 个主要组件。更多可用信息 (包括背景信息及类参考) 在此:

多媒体配方

对于某些快速配方,请查看以上概述并查阅下表:

用例 范例 QML 类型 C++ 类
播放音效 QSoundEffect
播放低延迟音频 audioinput , spectrum QAudioOutput
播放编码音频 (MP3 AAC 等) player 音频 , MediaPlayer QMediaPlayer
访问原生音频输入数据 spectrum , audioinput QAudioInput
录制编码音频数据 audiorecorder QAudioRecorder
探索原生音频设备 audiodevices QAudioDeviceInfo
视频回放 player , qmlvideo , qmlvideofx MediaPlayer , VideoOutput , 视频 QMediaPlayer , QVideoWidget , QGraphicsVideoItem
视频处理 qmlvideofx MediaPlayer , VideoOutput QMediaPlayer , QAbstractVideoSurface , QVideoFrame
收听无线电 declarative-radio Radio , RadioData QRadioTuner, QRadioData
访问摄像头取景器 camera , declarative-camera Camera , VideoOutput QCamera , QVideoWidget , QGraphicsVideoItem
取景器处理 Camera , VideoOutput QCamera , QAbstractVideoSurface , QVideoFrame
捕获照片 camera , declarative-camera Camera QCamera , QCameraImageCapture
捕获影片 camera , declarative-camera Camera QCamera , QMediaRecorder
3D 音源 Audio Engine AudioEngine , Sound

局限性

Qt Multimedia API 构建于底层平台多媒体框架之上。这可能意味着对各种编解码器或容器的支持因机器而异,取决于最终用户安装了什么。

高级用法

对于希望访问某些平台特定设置,或把 Qt Multimedia API 移植到新平台 (或新技术) 的开发者,见 多媒体后端开发 .

先前版本的变化

若先前使用 Qt 4 的 Qt Multimedia,或使用 Qt Mobility 的 Qt Multimedia Kit,请参阅 Qt Multimedia 的变化 了解有关改变的更多信息,及可能需要更改什么当移植代码时。

参考文档编制

QML 类型

访问 QML 类型,通过使用:

import QtMultimedia 5.8
					

音频

把音频回放添加到场景

Camera

访问取景器帧,并拍摄照片及影片

CameraCapture

捕获摄像头图像的接口

CameraExposure

曝光相关摄像头设置的接口

CameraFlash

闪光相关摄像头设置的接口

CameraFocus

对焦相关摄像头设置的接口

CameraImageProcessing

摄像头捕获相关设置的接口

CameraRecorder

控制摄像头录制视频

MediaPlayer

把媒体回放添加到场景

Playlist

针对要播放的指定媒体列表

PlaylistItem

定义播放列表项

QtMultimedia

提供具有 Qt Multimedia 有用功能的全局对象

RadioData

从 QML 应用程序访问 RDS 数据

SoundEffect

提供在 QML 中播放音效方式的类型

Torch

简单控制手电筒功能

视频

展示指定视频的方便类型

VideoOutput

渲染视频或摄像头取景器

访问下列类型,通过使用 Qt Audio Engine :

import QtAudioEngine 1.15
					

AttenuationModelInverse

定义用于声音的非线性衰减曲线

AttenuationModelLinear

定义用于声音的线性衰减曲线

AudioCategory

按组控制所有活动声音实例

AudioEngine

把所有 3D 音频内容组织在一处

AudioListener

控制全局监听器参数

AudioSample

加载音频样本,大部分 .wav

PlayVariation

定义声音的回放变体。因此同一声音的每次回放都存在轻微差异,即使采用相同 AudioSample

Sound

定义用于 SoundInstance 的各种样本和参数

SoundInstance

播放 3D 音频内容

多媒体类

QAbstractAudioDeviceInfo

音频后端基类

QAbstractAudioInput

访问 QAudioInput 以访问由插件提供的音频设备

QAbstractAudioOutput

音频后端基类

QAbstractPlanarVideoBuffer

抽象平面视频数据

QAbstractVideoBuffer

抽象视频数据

QAbstractVideoFilter

表示应用于通过 VideoOutput 类型接收视频帧的过滤器

QAbstractVideoSurface

视频呈现表面的基类

QAudio

包含用于音频类的枚举

QAudioBuffer

表示具有特定格式和采样率的一批音频样本

QAudioBuffer::StereoFrame

立体声音频帧的简单包裹器

QAudioDecoder

允许解码音频

QAudioDeviceInfo

查询音频设备及其功能的接口

QAudioEncoderSettings

音频编码器设置集

QAudioFormat

存储音频流参数信息

QAudioInput

从音频输入设备接收音频数据的接口

QAudioOutput

把音频数据发送到音频输出设备的接口

QAudioProbe

允许监视正播放 (或录制) 音频

QAudioRecorder

用于录制音频

QAudioSystemPlugin

音频插件抽象基

QCamera

系统摄像头设备接口

QCamera::FrameRateRange

FrameRateRange 表示最小和最大速率的帧速率范围

QCameraExposure

用于曝光相关摄像头设置的接口

QCameraFocus

用于对焦和缩放相关摄像头设置的接口

QCameraFocusZone

用于摄像头自动对焦的区域信息

QCameraImageCapture

用于录制媒体内容

QCameraImageProcessing

用于图像处理相关摄像头设置的接口

QCameraInfo

有关摄像头设备的一般信息

QCameraViewfinderSettings

取景器设置集

QGraphicsEffect

用于所有图形效果的基类

QGraphicsVideoItem

显示 QMediaObject 产生视频的图形项

QImageEncoderSettings

图像编码器设置集

QMediaBindableInterface

用于扩展媒体对象功能的对象基类

QMediaContent

对媒体内容相关资源的访问

QMediaMetaData

提供元数据属性标识符

QMediaObject

用于多媒体对象的公共基

QMediaPlayer

允许播放媒体源

QMediaPlaylist

要播放的媒体内容列表

QMediaRecorder

用于录制媒体内容

QMediaTimeInterval

表示时间间隔采用整数精度

QMediaTimeRange

表示一组零个或多个不相交的时间间隔

QMultimedia

包含用于整个 Qt Multimedia 库的杂项标识符

QSound

播放 .wav 声音文件的方法

QSoundEffect

播放低延迟音效的办法

QStaticText

当文本及其布局很少更新时,启用优化文本绘制

QVideoEncoderSettings

视频编码器设置集

QVideoFilterRunnable

表示拥有所有图形 计算资源,履行实际过滤 (或计算) 的过滤器实现

QVideoFrame

表示视频数据帧

QVideoProbe

允许监视视频帧播放或录制

QVideoSurfaceFormat

指定视频呈现表面的流格式

QVideoWidget

呈现媒体对象产生视频的小部件