多媒体概览#

一组用于处理音、视频和摄像头设备的API。

Qt中的多媒体支持由Qt Multimedia模块提供。该模块提供了一系列丰富的功能,让您能够轻松利用平台的多媒体功能,如媒体播放和使用摄像头设备。

特性#

以下是您可以用Qt多媒体API完成的几件事

  • 访问原始音频设备进行输入和输出。

  • 播放低延迟音效。

  • 播放3D空间音频。

  • 在播放列表中播放媒体文件(如压缩的音频或视频文件)。

  • 录制音频并进行压缩。

  • 使用摄像头,包括取景器、图像捕捉和电影录制

  • 将音频媒体文件解码到内存中进行处理。

多媒体组件#

Qt多媒体API分为三大主要组件。每个组件的详细信息可在概述页面中找到。您还可以查看一些食谱

多媒体食谱#

以下表格提供了一些快速食谱

用例

示例

QML类型

C++类

播放音效

SoundEffect

QSoundEffect

播放3D音效

audiopanning

SpatialSound, AudioEngine

QSpatialSound, QAudioEngine

播放编码音频(MP3, AAC等)

player

MediaPlayer

QMediaPlayer

使用低延迟播放原始音频数据

audiooutput

QAudioSink

访问原始音频输入数据

spectrum , audiosource

QAudioSource

录制编码音频数据

audiorecorder

CaptureSession , AudioInput , MediaRecorder

QMediaCaptureSession , QAudioInput , QMediaRecorder

发现音频和视频设备

audiodevices

MediaDevices , audioDevice , cameraDevice

QMediaDevicesQAudioDeviceQCameraDevice

视频播放

播放器媒体播放器

MediaPlayerVideoOutputVideo

QMediaPlayerQVideoWidgetQGraphicsVideoItem

捕获音频和视频

摄像头录制器

CaptureSessionCameraAudioInput VideoOutput

QMediaCaptureSessionQCameraQAudioInputQVideoWidget

拍摄照片

摄像头录制器

CaptureSessionCameraImageCapture

QMediaCaptureSessionQCameraQImageCapture

拍摄视频

摄像头录制器

CaptureSessionCameraMediaRecorder

QMediaCaptureSessionQCameraQMediaRecorder

限制

Qt 多媒体 API 建立在底层平台的多媒体框架之上。这意味着不同机器之间对各种编解码器或容器支持可能会有所不同。这种支持取决于最终用户安装的内容。有关更多详细信息,请参阅 支持的多媒体格式

注意

Qt 多媒体 API 依赖于 QCoreApplication 提供的功能,并且使用 Qt 多媒体 API 创建的多媒体对象只能在应用程序对象的生命周期内使用。因此,在访问任何 Qt 多媒体 API 之前创建 QCoreApplication、QGuiApplication 或 QApplication 很重要。如果重新创建应用程序对象,请确保重新创建任何 Qt 多媒体对象。

版本变化

如果您之前在 Qt 5 中使用过 Qt 多媒体,请参阅 Qt 多媒体的变化,了解有哪些变化以及将代码移植到 Qt 6 时可能需要更改的内容。

参考文档