class QMediaRecorder#

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

Inheritance diagram of PySide6.QtMultimedia.QMediaRecorder

摘要#

属性#

方法#

槽(Slots)#

信号(Signals)#

注意

本文档可能包含从 C++ 自动翻译为 Python 的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译问题,您也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 创建工单来告诉我们

详细描述#

警告

本节包含从 C++ 自动翻译为 Python 的代码片段,可能存在错误。

QMediaRecorder 类是一个用于在 QMediaCaptureSession 中生成和编码媒体数据的类。

session = QMediaCaptureSession()
audioInput = QAudioInput()
session.setAudioInput(input)
recorder = QMediaRecorder()
session.setRecorder(recorder)
recorder.setQuality(QMediaRecorder.HighQuality)
recorder.setOutputLocation(QUrl.fromLocalFile("test.mp3"))
recorder.record()
class Quality#

枚举质量编码级别。

常量

描述

QMediaRecorder.VeryLowQuality

QMediaRecorder.LowQuality

QMediaRecorder.NormalQuality

QMediaRecorder.HighQuality

QMediaRecorder.VeryHighQuality

自 6.1 版本引入。

class EncodingMode#

枚举编码模式。

常量

描述

QMediaRecorder.ConstantQualityEncoding

编码将旨在保持恒定质量,通过调整比特率来适应。

QMediaRecorder.ConstantBitRateEncoding

编码将使用恒定比特率,通过调整质量来适应。

QMediaRecorder.AverageBitRateEncoding

编码将尝试保持平均比特率设置,但会根据需要更多或更少。

QMediaRecorder.TwoPassEncoding

媒体将首先进行处理以确定特征,然后再次进行处理,为需要更多位数的区域分配更多位。

自 6.1 版本引入。

class RecorderState#

常量

描述

QMediaRecorder.StoppedState

录音机处于非活动状态。

QMediaRecorder.RecordingState

请求开始录制。

QMediaRecorder.PausedState

录制器暂停。

自 6.1 版本引入。

class Error#

常量

描述

QMediaRecorder.NoError

没有错误。

QMediaRecorder.ResourceError

设备未准备好或不可用。

QMediaRecorder.FormatError

当前格式不被支持。

QMediaRecorder.OutOfSpaceError

设备空间不足。

QMediaRecorder.LocationNotWritable

输出位置不可写。

自 6.1 版本引入。

注意

当使用 from __feature__ import true_property 时,可以直接使用属性,否则通过访问器函数。

property actualLocationᅟ: QUrl#

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

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

访问函数
property audioBitRateᅟ: int#
访问函数
property audioChannelCountᅟ: int#
访问函数
property audioSampleRateᅟ: int#
访问函数
property durationᅟ: int#

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

访问函数
属性 encodingMode: QMediaRecorder.EncodingMode#
访问函数
属性 error: QMediaRecorder.Error#

返回当前错误状态。

另请参阅

errorString()

访问函数
属性 errorString: str#

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

另请参阅

error()

访问函数
属性 mediaFormat: QMediaFormat#

返回录音媒体格式。

访问函数
属性 metaData: QMediaMetaData#

返回与录音关联的metaData。

访问函数
属性 outputLocation: QUrl#

此属性包含媒体内容的目标位置。

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

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

访问函数
属性 quality: QMediaRecorder.Quality#

返回录制质量。

访问函数
属性 recorderState: QMediaRecorder.RecorderState#

这个属性表示媒体记录器的当前状态。

状态属性代表着用户请求,在调用 record()pause()stop() 时同步改变。记录器状态也可能在录制失败时异步改变。

访问函数
属性 videoBitRate: int#
访问函数
属性 videoFrameRate: float#
访问函数
属性 videoResolution: QSize#
访问函数
__init__([parent=None])#
参数:

parentQObject

构建一个媒体记录器,用于记录麦克风和摄像头的媒体内容。该媒体记录器是parent的一个子类。

actualLocation()#
返回类型:

QUrl

属性actualLocationᅟ的获取器。

actualLocationChanged(location)#
参数:

locationQUrl

当已记录媒体的实际上传位置变化时发出信号,通常在开始记录时被发射。

属性actualLocationᅟ的更新信号。

addMetaData(metaData)#
参数:

metaDataQMediaMetaData

向已记录媒体添加metaData

audioBitRate()#
返回类型:

int

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

另请参阅

setAudioBitRate()

属性audioBitRateᅟ的获取器。

audioBitRateChanged()#

当记录音频的比特率发生变化时发出信号。

属性audioBitRateᅟ的更新信号。

audioChannelCount()#
返回类型:

int

返回音频声道数。

另请参阅

setAudioChannelCount()

属性audioChannelCountᅟ的获取器。

audioChannelCountChanged()#

当记录音频的频道数发生变化时发出信号。

属性audioChannelCountᅟ的更新信号。

audioSampleRate()#
返回类型:

int

以Hz为单位返回音频采样率。

另请参阅

setAudioSampleRate()

属性 audioSampleRate 的获取器。

audioSampleRateChanged()#

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

audioSampleRate 属性的通知信号。

captureSession()#
返回类型:

QMediaCaptureSession

返回媒体捕获会话。

duration()#
返回类型:

int

属性 duration 的获取器。

durationChanged(duration)#
参数:

duration - int

自动记录媒体 duration 改变的信号。

duration 属性的通知信号。

encoderSettingsChanged()#

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

encodingMode()#
返回类型:

编码模式

返回编码模式。

属性 encodingMode 的获取器。

encodingModeChanged()#

当编码模式改变时发出信号。

encodingMode 属性的通知信号。

error()#
返回类型:

错误

属性 error 的获取器。

errorChanged()#

属性 error 的通知信号。

errorOccurred(error, errorString)#
参数:
  • errorError

  • errorString – str

信号表示发生 error,且 errorString 中包含错误描述。

errorString()#
返回类型:

str

属性 errorString 的获取器。

isAvailable()#
返回类型:

bool

返回 true 如果媒体录制服务准备就绪。

mediaFormat()#
返回类型:

QMediaFormat

另请参阅

setMediaFormat()

属性 mediaFormat 的获取器。

mediaFormatChanged()#

属性 mediaFormat 的通知信号。

metaData()#
返回类型:

QMediaMetaData

另请参阅

setMetaData()

属性 metaData 的获取器。

metaDataChanged()#

信号表示媒体对象的元数据已更改。

如果有多个元数据元素更改,则 metadataChanged() 信号只会发出一次。

属性 metaData 的通知信号。

outputLocation()#
返回类型:

QUrl

另请参阅

setOutputLocation()

属性 outputLocation 的获取器。

pause()#

暂停录制。

记录仪状态变为 PausedState

根据平台的不同,暂停录制可能不被支持。在这种情况下,记录仪状态不会改变。

质量()#
返回类型:

质量

另请参阅

setQuality()

属性 quality 的获取器。

qualityChanged()#

当录制质量改变时发出信号。

属性 quality 的通知信号。

record()#

开始录制。

当录制器的状态立即变为 RecordingState 时,记录可能会异步开始。

如果录制失败则发出信号 error,录制器状态将被重置回 QMediaRecorder::StoppedState

注意

在移动设备上,录制将在调用 record 时设备的方向发生,并在录制期间锁定。为了避免用户界面的伪影,我们建议使用 QWindow 的 contentOrientation 属性将用户界面锁定到相同的方向,直到录制完成,然后再次解锁。

recorderState()#
返回类型:

RecorderState

返回当前媒体录制器状态。

另请参阅

RecorderState

属性 recorderState 的获取器。

recorderStateChanged(class state)#
参数:

stateRecorderState

当媒体录制器的 状态 改变时发出信号。

属性 recorderState 的通知信号。

setAudioBitRate(int bitRate)#
参数:

bitRate – int

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

另请参阅

audioBitRate()

属性 audioBitRate 的设置器。

setAudioChannelCount(int channels)#
参数:

channels – int

设置音频 通道数

值为 -1 表示录制器应基于音频源的可用性以及编解码器的限制做出最佳选择。

另请参阅

audioChannelCount()

属性 audioChannelCountᅟ 的设置器。

setAudioSampleRate(sampleRate)#
参数:

sampleRate – int

设置音频的采样率(单位Hz)。

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

另请参阅

audioSampleRate()

属性 audioSampleRateᅟ 的设置器。

setEncodingMode(arg__1)#
参数:

arg__1EncodingMode

设置编码模式的设置。

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

属性 encodingModeᅟ 的设置器。

setMediaFormat(format)#
参数:

formatQMediaFormat

另请参阅

mediaFormat()

设置属性 mediaFormatᅟ 的值。

setMetaData(metaData)#
参数:

metaDataQMediaMetaData

设置元数据到 metaData

注意

为确保正确设置元数据,应在开始录制之前设置它。一旦开始录制,所有设置的元数据将附加到下一次录制。

另请参阅

metaData()

属性 metaDataᅟ 的设置器。

setOutputLocation(location)#
参数:

locationQUrl

另请参阅

outputLocation()

属性 outputLocationᅟ 的设置器。

setQuality(quality)#
参数:

qualityQuality

另请参阅

quality()

属性 qualityᅟ 的设置器。

setVideoBitRate(bitRate)#
参数:

bitRate – int

设置每秒视频的比特率。

另请参阅

videoBitRate()

属性 videoBitRateᅟ 的设置器。

setVideoFrameRate(frameRate)#
参数:

frameRate – float

设置视频的 frameRate

0 的值表示录制器应根据视频源可用性和编解码器限制进行最佳选择。

另请参阅

videoFrameRate()

属性 videoFrameRateᅟ 的设置器。

setVideoResolution(arg__1)#
参数:

arg__1QSize

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

传递空 QSize 使录制器根据视频源可用性和编解码器限制选择最佳分辨率。

另请参阅

videoResolution()

属性 videoResolutionᅟ 的设置器。

setVideoResolution(width, height)
参数:
  • width – int

  • height – int

将编码视频的分辨率宽度设置为 width 和高度设置为 height

这是一个重载函数。

stop()#

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

videoBitRate()#
返回类型:

int

返回压缩视频流的比特率,单位为每秒比特数。

另请参阅

setVideoBitRate()

视频比特率属性 videoBitRateᅟ 的获取器。

videoBitRateChanged()#

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

视频比特率属性的属性变化通知信号 videoBitRateᅟ

videoFrameRate()#
返回类型:

浮点型

返回视频帧率。

另请参阅

setVideoFrameRate()

视频帧率属性的获取器 videoFrameRateᅟ

videoFrameRateChanged()#

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

视频帧率属性的属性变化通知信号 videoFrameRateᅟ

videoResolution()#
返回类型:

QSize

返回编码视频的分辨率。

另请参阅

setVideoResolution()

视频分辨率属性的获取器 videoResolutionᅟ

videoResolutionChanged()#

当视频记录分辨率发生变化时发出信号。

视频分辨率属性的属性变化通知信号 videoResolutionᅟ