QMediaRecorder 类

QMediaRecorder 类用于编码和记录捕获会话。 更多...

头文件 #include <QMediaRecorder>
CMakefind_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmakeQT += multimedia
实例化由 MediaRecorder
继承 QObject

公共类型

枚举EncodingMode { ConstantQualityEncoding, ConstantBitRateEncoding, AverageBitRateEncoding, TwoPassEncoding }
枚举Error { NoError, ResourceError, FormatError, OutOfSpaceError, LocationNotWritable }
枚举Quality { VeryLowQuality, LowQuality, NormalQuality, HighQuality, VeryHighQuality }
枚举RecorderState { StoppedState, RecordingState, PausedState }

属性

公共函数

QMediaRecorder(QObject *parent = nullptr)
virtual~QMediaRecorder()
QUrlactualLocation() const
voidaddMetaData(const QMediaMetaData &metaData)
intaudioBitRate() const
intaudioChannelCount() const
intaudioSampleRate() const
QMediaCaptureSession *captureSession() const
qint64duration() const
QMediaRecorder::EncodingModeencodingMode() const
QMediaRecorder::Errorerror() const
QStringerrorString() const
boolisAvailable() const
QMediaFormatmediaFormat() const
QMediaMetaDatametaData() const
QUrloutputLocation() const
QMediaRecorder::质量quality() const
QMediaRecorder::录制器状态recorderState() const
voidsetAudioBitRate(int bitRate)
voidsetAudioChannelCount(int channels)
voidsetAudioSampleRate(int sampleRate)
voidsetEncodingMode(QMediaRecorder::EncodingMode mode)
voidsetMediaFormat(const QMediaFormat &format)
voidsetMetaData(const QMediaMetaData &metaData)
voidsetOutputLocation(const QUrl &location)
voidsetQuality(QMediaRecorder::Quality quality)
voidsetVideoBitRate(int bitRate)
voidsetVideoFrameRate(qreal frameRate)
voidsetVideoResolution(const QSize &size)
voidsetVideoResolution(int width, int height)
intvideoBitRate() const
qrealvideoFrameRate() const
QSizevideoResolution() const

公共槽函数

void暂停()
void记录()
void停止()

信号

voidactualLocationChanged(const QUrl &location)
void音频比特率改变()
void音频通道数量改变()
void音频采样率改变()
voiddurationChanged(qint64 duration)
void编码器设置变更()
void编码模式变更()
void错误变更()
voiderrorOccurred(QMediaRecorder::Error error, const QString &errorString)
void媒体格式变更()
void元数据变更()
void质量变更()
voidrecorderStateChanged(QMediaRecorder::RecorderState state)
void视频比特率改变()
void视频帧率改变()
void视频分辨率改变()

详细描述

The QMediaRecorder 类是一个用于编码和记录在 QMediaCaptureSession 中生成的媒体的类。

QMediaCaptureSession session;
QAudioInput audioInput;
session.setAudioInput(&input);
QMediaRecorder recorder;
session.setRecorder(&recorder);
recorder.setQuality(QMediaRecorder::HighQuality);
recorder.setOutputLocation(QUrl::fromLocalFile("test.mp3"));
recorder.record();

成员类型文档

enum QMediaRecorder::EncodingMode

列举编码模式。

常量描述
QMediaRecorder::ConstantQualityEncoding0编码将追求保持恒定质量,调整比特率以适应。
QMediaRecorder::ConstantBitRateEncoding1编码将使用恒定比特率,调整质量以适应。
QMediaRecorder::AverageBitRateEncoding2编码将尝试保持平均比特率设置,但根据需要使用更多或更少。
QMediaRecorder::TwoPassEncoding3媒体将首先处理以确定特征,然后进行第二次处理,为需要的区域分配更多比特。

enum QMediaRecorder::Error

常量描述
QMediaRecorder::NoError0没有错误。
QMediaRecorder::ResourceError1设备未准备好或不可用。
QMediaRecorder::FormatError2当前格式不受支持。
QMediaRecorder::OutOfSpaceError3设备上没有剩余空间。
QMediaRecorder::LocationNotWritable4输出位置不可写。

枚举 QMediaRecorder::Quality

枚举质量编码级别。

常量
QMediaRecorder::VeryLowQuality0
QMediaRecorder::LowQuality1
QMediaRecorder::NormalQuality2
QMediaRecorder::HighQuality3
QMediaRecorder::VeryHighQuality4

枚举 QMediaRecorder::RecorderState

常量描述
QMediaRecorder::StoppedState0记录器未激活。
QMediaRecorder::RecordingState1已请求录制。
QMediaRecorder::PausedState2记录器已暂停。

属性文档

[只读] actualLocation : const QUrl

此属性保存最后媒体内容的实际位置。

实际位置通常在录制开始后可用,并在设置新位置或开始新录制时重置。

访问函数

QUrlactualLocation() const

通知信号

voidactualLocationChanged(const QUrl &location)

[只读] duration : const qint64

此属性保存录制媒体持续时间的毫秒数。

访问函数

qint64duration() const

通知信号

voiddurationChanged(qint64 duration)

[只读] error : const QMediaRecorder::Error

返回当前的错误状态。

访问函数

QMediaRecorder::Errorerror() const

通知信号

void错误变更()

参见errorString

[只读] errorString : const QString

返回描述当前错误状态的字符串。

访问函数

QStringerrorString() const

通知信号

void错误变更()

参见error

mediaFormat : QMediaFormat

返回录制媒体的格式。

访问函数

QMediaFormatmediaFormat() const
voidsetMediaFormat(const QMediaFormat &format)

通知信号

void媒体格式变更()

metaData : QMediaMetaData

返回与录制关联的元数据。

访问函数

QMediaMetaDatametaData() const
voidsetMetaData(const QMediaMetaData &metaData)

通知信号

outputLocation : QUrl

此属性保存媒体内容的输出目的地位置。

设置位置可能会失败,例如,当服务只支持本地文件系统位置但传递了一个网络URL时。如果操作失败,则会发出一个errorOccured()信号。

输出位置可以是相对的或空的;在后一种情况下,记录器使用系统特定的位置和文件命名方案。

访问函数

QUrloutputLocation() const
voidsetOutputLocation(const QUrl &location)

quality : Quality

返回录制质量。

访问函数

QMediaRecorder::质量quality() const
voidsetQuality(QMediaRecorder::Quality quality)

通知信号

void质量变更()

[只读] recorderState : const QMediaRecorder::RecorderState

此属性保留了媒体录音机的当前状态。

状态属性代表用户请求,并在record()、pause()或stop()调用期间同步更改。当录制失败时,录音机状态也可能异步更改。

访问函数

QMediaRecorder::录制器状态recorderState() const

通知信号

voidrecorderStateChanged(QMediaRecorder::RecorderState 状态)

成员函数文档

QMediaRecorder::QMediaRecorder(QObject * = nullptr)

构建一个接受麦克风和摄像机产生的媒体进行录制的媒体录音机。媒体录音机是的子对象。

[虚函数PitchNoexcept] QMediaRecorder::~QMediaRecorder()

销毁媒体录音机对象。

[信号] void QMediaRecorder::actualLocationChanged(const QUrl &位置)

信号表明录制的媒体的位置已更改。当开始录制时通常发出此信号。

注意:属性actualLocation的通知信号。

void QMediaRecorder::addMetaData(const QMediaMetaData &元数据)

元数据添加到录制的媒体中。

int QMediaRecorder::audioBitRate() const

返回以每秒比特数压缩的音频流的比特率。

注意:属性audioBitRate的获取函数。

另请参阅:setAudioBitRate

[信号] void QMediaRecorder::audioBitRateChanged()

在录制音频比特率更改时发出信号。

注意:属性audioBitRate的通知信号。

int QMediaRecorder::audioChannelCount() const

返回音频通道数。

注意:属性audioChannelCount的获取函数。

另请参阅:setAudioChannelCount

[信号] void QMediaRecorder::audioChannelCountChanged()

在录制音频通道数更改时发出信号。

注意:属性audioChannelCount的通知信号。

int QMediaRecorder::audioSampleRate() const

返回音频采样率(Hz)。

注意:属性audioSampleRate的获取函数。

另请参阅:setAudioSampleRate

[信号] void QMediaRecorder::audioSampleRateChanged()

当录制音频采样率更改时发出信号。

注意:属性audioSampleRate的通知信号。

QMediaCaptureSession *QMediaRecorder::captureSession() const

获取媒体捕获会话。

[信号] void QMediaRecorder::durationChanged(qint64 duration)

当记录媒体的duration发生变化时发出信号。

注意:属性duration的通知器信号。

[信号] void QMediaRecorder::encoderSettingsChanged()

编码器设置更改时发出信号。

QMediaRecorder::EncodingMode QMediaRecorder::encodingMode() const

返回编码模式。

注意:encodingMode属性的获取函数。

另请参阅:setEncodingMode()和EncodingMode

[信号] void QMediaRecorder::encodingModeChanged()

编码模式更改时发出信号。

注意:encodingMode属性的通知器信号。

[信号] void QMediaRecorder::errorOccurred(QMediaRecorder::Error error, const QString &errorString)

error发生,包含错误描述的errorString

bool QMediaRecorder::isAvailable() const

如果媒体记录器已准备好使用,则返回true

[信号] void QMediaRecorder::metaDataChanged()

当媒体对象的元数据发生变化时发出信号。

如果多个元数据元素已更改,则めたデータ変化がsingled()>は通常に発生。

注意:metaData属性的指示器信号。

[槽函数] void QMediaRecorder::pause()

暂停录制。

记录器状态更改为QMediaRecorder::PausedState

根据平台,暂停记录可能不受支持。在这种情况下,记录器状态保持不变。

[信号] void QMediaRecorder::qualityChanged()

录制质量更改时发出信号。

注意:-quality属性的指示器信号。

[槽函数] void QMediaRecorder::record()

开始录制。

虽然记录器状态立即更改为c{QMediaRecorder::RecordingState},但记录可能异步开始。

如果记录失败,则会发出信号QMediaRecorder::StoppedState。

注意:在移动设备上,录制将在调用录制时的设备方向进行,并且在整个录制期间保持锁定。为了避免用户界面上的杂质,我们建议使用QWindow的contentOrientation属性使用户界面保持与录制相同的方向,一旦录制完成再解锁。

QMediaRecorder::RecorderState QMediaRecorder::recorderState() const

返回当前媒体录制状态。

注意:属性recorderState的getter函数。

另请参阅:QMediaRecorder::RecorderState

[信号] void QMediaRecorder::recorderStateChanged(QMediaRecorder::RecorderState 状态)

指示媒体录制器的状态已更改。

注意:属性recorderState的在线通知信号。

void QMediaRecorder::setAudioBitRate(int bitRate)

以每秒比特数设置音频比特率

注意:属性audioBitRate的setter函数。

另请参阅:audioBitRate

void QMediaRecorder::setAudioChannelCount(int channels)

设置音频通道数

值-1表示录制器应根据音频源来源和编解码器的限制进行最佳选择。

注意:属性audioChannelCount的setter函数。

另请参阅:audioChannelCount

void QMediaRecorder::setAudioSampleRate(int sampleRate)

以Hz设置音频采样率

-1表示录制器应根据音频源和编解码器的限制进行最佳选择。

注意:属性audioSampleRate的setter函数。

另请参阅:audioSampleRate

void QMediaRecorder::setEncodingMode(QMediaRecorder::EncodingMode mode)

设置编码模式设置。

如果设置为ConstantQualityEncoding,则使用质量编码参数,并忽略比特率;否则使用比特率。

注意:属性encodingMode的setter函数。

另请参阅:encodingMode() 和 EncodingMode

void QMediaRecorder::setMetaData(const QMediaMetaData &metaData)

设置元数据为metaData

注意:为确保元数据设置正确,应在开始录制之前设置它。一旦开始录制,设置的任何元数据都将附加到下一次录制。

注意:属性metaData的setter函数。

另请参阅:metaData

void QMediaRecorder::setVideoBitRate(int bitRate)

设置视频比特率(以每秒比特数计)。

注意:属性 videoBitRate 的设置器函数。

另请参阅:videoBitRate()。

void QMediaRecorder::setVideoFrameRate(qreal frameRate)

设置视频帧率。

0 的值表示记录器应基于视频源获取的内容和编解码器限制,进行最优选择。

注意:属性 videoFrameRate 的设置器函数。

另请参阅:videoFrameRate()。

void QMediaRecorder::setVideoResolution(const QSize &size)

将编码后的视频分辨率设置为 size

传递一个空的 QSize,让记录器基于视频源获取的内容和编解码器限制进行最优分辨率选择。

注意:属性 videoResolution 的设置器函数。

另请参阅:videoResolution()。

void QMediaRecorder::setVideoResolution(int width, int height)

设置编码后视频的宽度和高度。

这是一个重载函数。

注意:属性 videoResolution 的设置器函数。

[slot] void QMediaRecorder::stop()

记录器将停止录制。处理挂起的视频和音频数据可能还需要一些时间。当媒体记录器的状态变为 QMediaRecorder::StoppedState 时,录制完成。

int QMediaRecorder::videoBitRate() const

返回压缩视频流的比特率(每秒比特数)。

注意:videoBitRate 属性的获取器函数。

另请参阅:setVideoBitRate()。

[signal] void QMediaRecorder::videoBitRateChanged()

当录制视频比特率变化时发出信号。

注意:videoBitRate 属性的通告信号。

qreal QMediaRecorder::videoFrameRate() const

返回视频帧率。

注意:videoFrameRate 属性的获取器函数。

另请参阅:setVideoFrameRate()。

[signal] void QMediaRecorder::videoFrameRateChanged()

当录制视频帧率变化时发出信号。

注意:videoFrameRate 属性的通告信号。

QSize QMediaRecorder::videoResolution() const

返回编码视频的分辨率。

注意:videoResolution 属性的获取器函数。

另请参阅 setVideoResolution()。

[信号] void QMediaRecorder::videoResolutionChanged()

视频录制分辨率更改时发出信号。

注意:属性videoResolution的通知信号。

© 2024 The Qt Company Ltd. 本文档中的文档贡献版权属于各自的所有者。本提供的文档是根据自由软件基金会发布的GNU自由文档许可证1.3版的条款授权。Qt及其相关标志是芬兰及其它国家和地区的The Qt Company Ltd.的商标。所有其他商标属于其各自的所有者。