QMediaFormat Class
描述了多媒体文件或流的一种编码格式。更多...
| 标题: | #include <QMediaFormat> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
| qmake: | QT += multimedia |
公共类型
| enum class | AudioCodec { WMA, AC3, AAC, ALAC, DolbyTrueHD, …, Unspecified } |
| enum | ConversionMode { Encode, Decode } |
| enum | FileFormat { WMA, AAC, Matroska, WMV, MP3, …, UnspecifiedFormat } |
| enum | ResolveFlags { NoFlags, RequiresVideo } |
| enum class | VideoCodec { VP8, MPEG2, MPEG1, WMV, H265, …, Unspecified } |
属性
- audioCodec : AudioCodec
- fileFormat : FileFormat
- videoCodec : VideoCodec
公共函数
| QMediaFormat(QMediaFormat::FileFormat format = UnspecifiedFormat) | |
| QMediaFormat(const QMediaFormat &other) | |
| QMediaFormat(QMediaFormat &&other) | |
| ~QMediaFormat() | |
| QMediaFormat::AudioCodec | audioCodec() const |
| QMediaFormat::FileFormat | fileFormat() const |
| bool | isSupported(QMediaFormat::ConversionMode mode) const |
| QMimeType | mimeType() const |
| void | resolveForEncoding(QMediaFormat::ResolveFlags flags) |
| void | setAudioCodec(QMediaFormat::AudioCodec codec) |
| void | setFileFormat(QMediaFormat::FileFormat f) |
| void | setVideoCodec(QMediaFormat::VideoCodec codec) |
| QList<QMediaFormat::AudioCodec> | supportedAudioCodecs(QMediaFormat::ConversionMode m) |
| QList<QMediaFormat::FileFormat> | supportedFileFormats(QMediaFormat::ConversionMode m) |
| QList<QMediaFormat::VideoCodec> | supportedVideoCodecs(QMediaFormat::ConversionMode m) |
| void | swap(QMediaFormat &other) |
| QMediaFormat::VideoCodec | videoCodec() const |
| bool | operator!=(const QMediaFormat &other) const |
| QMediaFormat & | operator=(QMediaFormat &&other) |
| QMediaFormat & | operator=(const QMediaFormat &other) |
| bool | operator==(const QMediaFormat &other) const |
静态公共成员
| QString | audioCodecDescription(QMediaFormat::AudioCodec codec) |
| QString | audioCodecName(QMediaFormat::AudioCodec codec) |
| QString | fileFormatDescription(QMediaFormat::FileFormat fileFormat) |
| QString | fileFormatName(QMediaFormat::FileFormat fileFormat) |
| QString | videoCodecDescription(QMediaFormat::VideoCodec codec) |
| QString | videoCodecName(QMediaFormat::VideoCodec codec) |
成员类型文档
enum class QMediaFormat::AudioCodec
描述多媒体文件或流中使用的音频编解码器。
| 常量 | 值 | 描述 |
|---|---|---|
QMediaFormat::AudioCodec::WMA | 9 | Windows Media Audio |
QMediaFormat::AudioCodec::AC3 | 2 | 杜比数字 |
QMediaFormat::AudioCodec::AAC | 1 | 高级音频编码 |
QMediaFormat::AudioCodec::ALAC | 10 | Apple 无损音频编解码器 |
QMediaFormat::AudioCodec::DolbyTrueHD | 5 | 杜比TrueHD |
QMediaFormat::AudioCodec::EAC3 | 3 | 杜比数字 Plus(EAC3) |
QMediaFormat::AudioCodec::MP3 | 0 | MPEG-1 音频层 III 或 MPEG-2 音频层 III |
QMediaFormat::AudioCodec::Wave | 8 | 波形音频文件格式 |
QMediaFormat::AudioCodec::Vorbis | 7 | Ogg Vorbis |
QMediaFormat::AudioCodec::FLAC | 4 | 自由无损音频编解码器 |
QMediaFormat::AudioCodec::Opus | 6 | Opus 音频格式 |
QMediaFormat::AudioCodec::Unspecified | -1 | 未指定的编解码器 |
enum QMediaFormat::ConversionMode
在许多情况下,系统具有非对称功能,通常能够解码的格式或编解码器比能够编码的更多。此枚举描述了在检查是否支持特定文件格式或编解码器时所使用的请求转换模式。
| 常量 | 值 | 描述 |
|---|---|---|
QMediaFormat::Encode | 0 | 用于检查是否可以对特定文件格式或编解码器进行编码。 |
QMediaFormat::Decode | 1 | 用于检查是否可以对特定文件格式或编解码器进行编码。 |
另请参阅 supportedFileFormats 、supportedAudioCodecs 和supportedVideoCodecs 。
enum QMediaFormat::FileFormat
描述多媒体文件或流中使用的容器格式。
| 常量 | 值 | 描述 |
|---|---|---|
QMediaFormat::WMA | 9 | Windows Media Audio |
QMediaFormat::AAC | 8 | 高级音频编码 |
QMediaFormat::Matroska | 2 | Matroska (MKV) |
QMediaFormat::WMV | 0 | Windows Media Video |
QMediaFormat::MP3 | 10 | MPEG-1 音频层 III 或 MPEG-2 音频层 III |
QMediaFormat::Wave | 12 | 波形音频文件格式 |
QMediaFormat::Ogg | 4 | Ogg |
QMediaFormat::MPEG4 | 3 | MPEG-4 |
QMediaFormat::AVI | 1 | 音视频交错 |
QMediaFormat::QuickTime | 5 | QuickTime |
QMediaFormat::WebM | 6 | WebM |
QMediaFormat::Mpeg4Audio | 7 | MPEG-4 第 3 部分或 MPEG-4 音频(正式名称为 ISO/IEC 14496-3) |
QMediaFormat::FLAC | 11 | 自由无损音频编解码器 |
QMediaFormat::UnspecifiedFormat | -1 | 该格式未作规定。 |
enum QMediaFormat::ResolveFlags
描述了为QMediaRecorder 确定合适格式的相关要求。
| 常量 | 值 | 描述 |
|---|---|---|
QMediaFormat::NoFlags | 0 | 无要求 |
QMediaFormat::RequiresVideo | 1 | 需要视频编解码器 |
另请参阅 resolveForEncoding()。
enum class QMediaFormat::VideoCodec
描述多媒体文件或流中使用的视频编码。
| 常量 | 值 | 描述 |
|---|---|---|
QMediaFormat::VideoCodec::VP8 | 5 | VP8 |
QMediaFormat::VideoCodec::MPEG2 | 1 | MPEG-2 |
QMediaFormat::VideoCodec::MPEG1 | 0 | MPEG-1 |
QMediaFormat::VideoCodec::WMV | 9 | Windows Media Video |
QMediaFormat::VideoCodec::H265 | 4 | 高效视频编码 (HEVC) |
QMediaFormat::VideoCodec::H264 | 3 | 高级视频编码 |
QMediaFormat::VideoCodec::MPEG4 | 2 | MPEG-4 |
QMediaFormat::VideoCodec::AV1 | 7 | AOMedia Video 1 |
QMediaFormat::VideoCodec::MotionJPEG | 10 | MotionJPEG |
QMediaFormat::VideoCodec::VP9 | 6 | VP9 |
QMediaFormat::VideoCodec::Theora | 8 | Theora |
QMediaFormat::VideoCodec::Unspecified | -1 | 未指定视频编解码器 |
属性文档
audioCodec : AudioCodec
该属性存储媒体的音频编解码器。
访问函数:
| QMediaFormat::AudioCodec | audioCodec() const |
| void | setAudioCodec(QMediaFormat::AudioCodec codec) |
另请参阅 QMediaFormat::AudioCodec 。
fileFormat : FileFormat
该属性存储了媒体的文件(容器)格式。
访问函数:
| QMediaFormat::FileFormat | fileFormat() const |
| void | setFileFormat(QMediaFormat::FileFormat f) |
另请参阅 QMediaFormat::FileFormat 。
videoCodec : VideoCodec
该属性存储媒体的视频编解码器。
访问函数:
| QMediaFormat::VideoCodec | videoCodec() const |
| void | setVideoCodec(QMediaFormat::VideoCodec codec) |
另请参阅 QMediaFormat::VideoCodec 。
成员函数文档
QMediaFormat::QMediaFormat(QMediaFormat::FileFormat format = UnspecifiedFormat)
为format 创建一个QMediaFormat对象。
[noexcept] QMediaFormat::QMediaFormat(const QMediaFormat &other)
通过从other 复制内容来构建一个QMediaFormat对象。
[constexpr noexcept default] QMediaFormat::QMediaFormat(QMediaFormat &&other)
通过从other 开始,构建一个QMediaFormat对象。
[noexcept] QMediaFormat::~QMediaFormat()
销毁QMediaFormat 对象。
QMediaFormat::AudioCodec QMediaFormat::audioCodec() const
返回该格式中使用的音频编解码器。
注意: 这是属性 audioCodec 的获取 函数。
另请参阅 setAudioCodec() 和QMediaFormat::AudioCodec 。
[static invokable] QString QMediaFormat::audioCodecDescription(QMediaFormat::AudioCodec codec)
返回codec 的描述。
注意: 可通过元对象系统和 QML 调用此 函数。参见Q_INVOKABLE 。
[static invokable] QString QMediaFormat::audioCodecName(QMediaFormat::AudioCodec codec)
返回codec 的字符串名称。
注意: 可以通过元对象系统和 QML 调用此 函数。请参阅Q_INVOKABLE 。
[static invokable] QString QMediaFormat::fileFormatDescription(QMediaFormat::FileFormat fileFormat)
返回fileFormat 的描述。
注意: 可通过元对象系统和 QML 调用此 函数。参见Q_INVOKABLE 。
[static invokable] QString QMediaFormat::fileFormatName(QMediaFormat::FileFormat fileFormat)
返回fileFormat 的字符串名称。
注意:该 函数可通过元对象系统及 QML 调用。参见Q_INVOKABLE 。
[invokable] bool QMediaFormat::isSupported(QMediaFormat::ConversionMode mode) const
如果Qt Multimedia 能够对该格式进行编码或解码(取决于mode ),则返回true 。
注意: 可通过元对象系统和 QML 调用此 函数。参见Q_INVOKABLE 。
QMimeType QMediaFormat::mimeType() const
返回此媒体格式所用文件格式的MIME 类型。
void QMediaFormat::resolveForEncoding(QMediaFormat::ResolveFlags flags)
根据flags 将格式转换为QMediaRecorder 所支持的格式。
该方法会尝试为未指定的设置找到最佳匹配方案。录制器不支持的设置将被修改为最接近且受支持的选项。
在转换时,优先级按以下顺序确定:
- 文件格式
- 视频编解码器
- 音频编解码器
void QMediaFormat::setAudioCodec(QMediaFormat::AudioCodec codec)
将音频编解码器设置为codec 。
注意: 这是属性 `audioCodec`的设置 函数。
另请参阅 audioCodec() 和QMediaFormat::AudioCodec 。
void QMediaFormat::setVideoCodec(QMediaFormat::VideoCodec codec)
将视频编解码器设置为codec 。
注意: 这是属性videoCodec 的设置 函数。
另请参阅 videoCodec() 和QMediaFormat::VideoCodec 。
[invokable] QList<QMediaFormat::AudioCodec> QMediaFormat::supportedAudioCodecs(QMediaFormat::ConversionMode m)
返回所选文件格式和视频编解码器(m )对应的音频编解码器列表。
要获取所有受支持的音频编解码器,请在默认构造的QMediaFormat 上运行此查询。
注意: 可通过元对象系统和 QML 调用此 函数。参见Q_INVOKABLE 。
另请参阅 QMediaFormat::ConversionMode 。
[invokable] QList<QMediaFormat::FileFormat> QMediaFormat::supportedFileFormats(QMediaFormat::ConversionMode m)
返回由m 指定的音频和视频编解码器所支持的文件格式列表。
要获取所有受支持的文件格式,请对默认构造的QMediaFormat 运行此查询。
注意: 可以通过元对象系统和 QML 调用此 函数。请参阅Q_INVOKABLE 。
另请参阅 QMediaFormat::ConversionMode 。
[invokable] QList<QMediaFormat::VideoCodec> QMediaFormat::supportedVideoCodecs(QMediaFormat::ConversionMode m)
返回所选文件格式和音频编解码器(m )对应的视频编解码器列表。
要获取所有受支持的视频编解码器,请在默认构造的 MediaFormat 上运行此查询。
注意: 可通过元对象系统和 QML 调用此 函数。参见Q_INVOKABLE 。
另请参阅 QMediaFormat::ConversionMode 。
[noexcept] void QMediaFormat::swap(QMediaFormat &other)
使用other 切换媒体格式。
QMediaFormat::VideoCodec QMediaFormat::videoCodec() const
返回该格式中使用的视频编解码器。
注意: 这是 videoCodec 属性的获取函数 。
另请参阅 setVideoCodec() 和QMediaFormat::VideoCodec 。
[static invokable] QString QMediaFormat::videoCodecDescription(QMediaFormat::VideoCodec codec)
返回codec 的描述。
注意: 可以通过元对象系统以及从 QML 调用此 函数。请参阅Q_INVOKABLE 。
[static invokable] QString QMediaFormat::videoCodecName(QMediaFormat::VideoCodec codec)
返回codec 的字符串名称。
注意:此 函数可通过元对象系统以及从 QML 中调用。参见Q_INVOKABLE 。
bool QMediaFormat::operator!=(const QMediaFormat &other) const
如果 `other ` 与当前媒体格式不一致,则返回 `true `;否则返回 `false`。
[noexcept] QMediaFormat &QMediaFormat::operator=(QMediaFormat &&other)
将other 移动到此处:QMediaFormat objects。
[noexcept] QMediaFormat &QMediaFormat::operator=(const QMediaFormat &other)
将 `other ` 复制到此 `QMediaFormat ` 对象中。
bool QMediaFormat::operator==(const QMediaFormat &other) const
如果 `other ` 等于当前媒体格式,则返回 `true `;否则返回 `false`。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.