Qt 提供多媒体支持通过 Qt Multimedia 模块。Qt Multimedia 模块提供丰富特征集,使您能够轻松利用平台的多媒体能力,譬如:媒体回放和使用摄像头设备。
这里是采用 Qt Multimedia API 可以做的一些事情:
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 类型,通过使用:
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 | 呈现媒体对象产生视频的小部件 |