多媒体概述

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

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

功能

以下是您可以使用Qt多媒体API进行的一些操作:

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

  • 播放低延迟音效。

  • 播放3D空间音频。

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

  • 录制音频并压缩它。

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

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

多媒体组件

Qt多媒体API分为三个主要组件。有关每个组件的更多信息可在概述页面中找到。您还可以查看一些recipes

多媒体食谱

有关一些快速食谱,请参阅此表:

用例

示例

QML 类型

C++ 类

播放音效

SoundEffect

QSoundEffect

播放3D音效

audiopanning

SpatialSound, AudioEngine

QSpatialSound, QAudioEngine

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

播放器

MediaPlayer

QMediaPlayer

播放低延迟的原始音频数据

audiooutput

QAudioSink

访问原始音频输入数据

spectrum , audiosource

QAudioSource

录制编码的音频数据

audiorecorder

CaptureSession , AudioInput , MediaRecorder

QMediaCaptureSession , QAudioInput , QMediaRecorder

发现音频和视频设备

audiodevices

MediaDevices , audioDevice , cameraDevice

QMediaDevices , QAudioDevice , QCameraDevice

视频播放

player , mediaplayer

MediaPlayer , VideoOutput , Video

QMediaPlayer , QVideoWidget , QGraphicsVideoItem

捕获音频和视频

相机 , 录音机

CaptureSession , Camera , AudioInput VideoOutput

QMediaCaptureSession , QCamera , QAudioInput , QVideoWidget

拍摄照片

相机 , 录像机

CaptureSession , Camera , ImageCapture

QMediaCaptureSession , QCamera , QImageCapture

捕捉电影

相机 , 录音机

CaptureSession , Camera , MediaRecorder

QMediaCaptureSession , QCamera , QMediaRecorder

限制

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

注意

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

与之前版本的变更

如果您之前在 Qt 5 中使用过 Qt Multimedia,请参阅 Changes to Qt Multimedia 了解更多关于变化的信息,以及在将代码移植到 Qt 6 时可能需要进行的更改。

参考文档