多媒体

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
					
视频 展示指定视频的方便类型
音频 把音频回放添加到场景
MediaPlayer 把媒体回放添加到场景
Camera 访问取景器帧,并拍摄照片及影片
CameraCapture 捕获摄像头图像的接口
CameraExposure 曝光相关摄像头设置的接口
CameraFlash 闪光相关摄像头设置的接口
CameraFocus 对焦相关摄像头设置的接口
CameraImageProcessing 摄像头捕获相关设置的接口
CameraRecorder 控制摄像头录制视频
QtMultimedia 提供具有 Qt Multimedia 有用功能的全局对象
Playlist 针对要播放的指定媒体列表
PlaylistItem 定义 Playlist 播放列表项
Radio Access radio functionality from a QML application
RadioData 从 QML 应用程序访问 RDS 数据
Torch 简单控制手电筒功能
SoundEffect 提供在 QML 中播放音效方式的类型
VideoOutput 渲染视频或摄像头取景器

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

import QtAudioEngine 1.1
					
AttenuationModelInverse 定义用于声音的非线性衰减曲线
AttenuationModelLinear 定义用于声音的线性衰减曲线
AudioCategory 按组控制所有活动声音实例
AudioEngine 把所有 3D 音频内容组织在一处
AudioListener 控制全局监听器参数
AudioSample 加载音频样本,大部分 .wav
PlayVariation 定义声音的回放变体。因此同一声音的每次回放都存在轻微差异,即使采用相同 AudioSample
Sound 定义用于 SoundInstance 的各种样本和参数
SoundInstance 播放 3D 音频内容

多媒体类

QStaticText 当文本及其布局很少更新时,启用优化文本绘制
QGraphicsEffect 用于所有图形效果的基类
QAudio 包含用于音频类的枚举
QAudioBuffer 表示具有特定格式和采样率的一批音频样本
QAudioBuffer::StereoFrame 立体声音频帧的简单包裹器
QAudioDecoder 允许解码音频
QAudioDeviceInfo 查询音频设备及其功能的接口
QAudioFormat 存储音频流参数信息
QAudioInput 从音频输入设备接收音频数据的接口
QAudioOutput 把音频数据发送到音频输出设备的接口
QAudioProbe 允许监视正播放 (或录制) 音频
QAbstractAudioDeviceInfo 音频后端基类
QAbstractAudioInput 访问 QAudioInput 以访问由插件提供的音频设备
QAbstractAudioOutput 音频后端基类
QAudioSystemPlugin 音频插件抽象基
QSound 播放 .wav 声音文件的方法
QSoundEffect 播放低延迟音效的办法
QCamera::FrameRateRange FrameRateRange 表示最小和最大速率的帧速率范围
QCamera 系统摄像头设备接口
QCameraExposure 用于曝光相关摄像头设置的接口
QCameraFocus 用于对焦和缩放相关摄像头设置的接口
QCameraFocusZone 用于摄像头自动对焦的区域信息
QCameraImageCapture 用于录制媒体内容
QCameraImageProcessing 用于图像处理相关摄像头设置的接口
QCameraInfo 有关摄像头设备的一般信息
QCameraViewfinderSettings 取景器设置集
QMediaContent Access to the resources relating to a media content
QMediaPlayer 允许播放媒体源
QMediaPlaylist 要播放的媒体内容列表
QMediaResource Description of a media resource
QMediaBindableInterface 用于扩展媒体对象功能的对象基类
QMediaControl Base interface for media service controls
QMediaMetaData 提供元数据属性标识符
QMediaObject 用于多媒体对象的公共基
QMediaService Common base class for media service implementations
QMediaTimeInterval 表示时间间隔采用整数精度
QMediaTimeRange 表示一组零个或多个不相交的时间间隔
QMultimedia 包含用于整个 Qt Multimedia 库的杂项标识符
QRadioData Interfaces to the RDS functionality of the system radio
QRadioTuner Interface to the systems analog radio device
QAudioRecorder 用于录制音频
QAudioEncoderSettings 音频编码器设置集
QImageEncoderSettings 图像编码器设置集
QVideoEncoderSettings 视频编码器设置集
QMediaRecorder 用于录制媒体内容
QAbstractPlanarVideoBuffer 抽象平面视频数据
QAbstractVideoBuffer 抽象视频数据
QAbstractVideoFilter 表示应用于通过 VideoOutput 类型接收视频帧的过滤器
QVideoFilterRunnable 表示拥有所有图形 计算资源,履行实际过滤 (或计算) 的过滤器实现
QAbstractVideoSurface 视频呈现表面的基类
QVideoFrame 表示视频数据帧
QVideoProbe 允许监视视频帧播放或录制
QVideoSurfaceFormat 指定视频呈现表面的流格式
QGraphicsVideoItem 显示 QMediaObject 产生视频的图形项
QVideoWidget 呈现媒体对象产生视频的小部件