- class QMediaRecorder#
QMediaRecorder类用于编码和录制捕获会话。更多…摘要#
属性#
actualLocation属性- 最后一个媒体内容的实际位置duration属性- 记录的媒体持续时间的毫秒数outputLocation- 媒体内容的目标位置recorderState- 媒体录制器的当前状态
方法#
def
__init__def
actualLocationdef
addMetaDatadef
audioBitRatedef
audioSampleRatedef
captureSessiondef
durationdef
encodingModedef
errordef
errorStringdef
isAvailabledef
mediaFormatdef
metaDatadef
outputLocationdef
qualitydef
recorderStatedef
setAudioBitRate定义
setQuality()
槽(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 audioBitRateᅟ: int#
- property audioChannelCountᅟ: int#
- property audioSampleRateᅟ: int#
- property durationᅟ: int#
这个属性保存了录制媒体持续时间的毫秒数。
- 访问函数
- 属性 encodingMode: QMediaRecorder.EncodingMode#
- 属性 error: QMediaRecorder.Error#
返回当前错误状态。
另请参阅
- 访问函数
- 属性 errorString: str#
返回描述当前错误状态的字符串。
另请参阅
- 访问函数
- 属性 mediaFormat: QMediaFormat#
返回录音媒体格式。
- 属性 metaData: QMediaMetaData#
返回与录音关联的metaData。
- 访问函数
此属性包含媒体内容的目标位置。
设置位置可能会失败,例如,当服务只支持本地文件系统位置但传递了网络URL时。如果操作失败,则会发出errorOccured()信号。
输出位置可以是相对的或空的;在后一种情况下,记录器使用系统特定的位置和文件命名方案。
- 属性 quality: QMediaRecorder.Quality#
返回录制质量。
- 访问函数
- 属性 recorderState: QMediaRecorder.RecorderState#
这个属性表示媒体记录器的当前状态。
状态属性代表着用户请求,在调用
record(),pause()或stop()时同步改变。记录器状态也可能在录制失败时异步改变。- 属性 videoBitRate: int#
- 属性 videoFrameRate: float#
构建一个媒体记录器,用于记录麦克风和摄像头的媒体内容。该媒体记录器是
parent的一个子类。属性
actualLocationᅟ的获取器。当已记录媒体的实际上传位置变化时发出信号,通常在开始记录时被发射。
属性
actualLocationᅟ的更新信号。- addMetaData(metaData)#
- 参数:
metaData –
QMediaMetaData
向已记录媒体添加
metaData。- audioBitRate()#
- 返回类型:
int
以每秒比特数返回压缩音频流的比特率。
另请参阅
属性
audioBitRateᅟ的获取器。- audioBitRateChanged()#
当记录音频的比特率发生变化时发出信号。
属性
audioBitRateᅟ的更新信号。- audioChannelCount()#
- 返回类型:
int
返回音频声道数。
属性
audioChannelCountᅟ的获取器。- audioChannelCountChanged()#
当记录音频的频道数发生变化时发出信号。
属性
audioChannelCountᅟ的更新信号。- audioSampleRate()#
- 返回类型:
int
以Hz为单位返回音频采样率。
另请参阅
属性
audioSampleRate的获取器。- audioSampleRateChanged()#
当录音音频采样率改变时发出信号。
audioSampleRate属性的通知信号。- captureSession()#
- 返回类型:
返回媒体捕获会话。
- duration()#
- 返回类型:
int
属性
duration的获取器。- durationChanged(duration)#
- 参数:
duration - int
自动记录媒体
duration改变的信号。duration属性的通知信号。- encoderSettingsChanged()#
当编码器设置改变时发出信号。
返回编码模式。
属性
encodingMode的获取器。- encodingModeChanged()#
当编码模式改变时发出信号。
encodingMode属性的通知信号。属性
error的获取器。- errorChanged()#
属性
error的通知信号。信号表示发生
error,且errorString中包含错误描述。- errorString()#
- 返回类型:
str
属性
errorString的获取器。- isAvailable()#
- 返回类型:
bool
返回
true如果媒体录制服务准备就绪。- mediaFormat()#
- 返回类型:
另请参阅
属性
mediaFormat的获取器。- mediaFormatChanged()#
属性
mediaFormat的通知信号。- metaData()#
- 返回类型:
另请参阅
属性
metaData的获取器。- metaDataChanged()#
信号表示媒体对象的元数据已更改。
如果有多个元数据元素更改,则 metadataChanged() 信号只会发出一次。
属性
metaData的通知信号。- outputLocation()#
- 返回类型:
另请参阅
属性
outputLocation的获取器。- pause()#
暂停录制。
记录仪状态变为
PausedState。根据平台的不同,暂停录制可能不被支持。在这种情况下,记录仪状态不会改变。
- 质量()#
- 返回类型:
另请参阅
属性
quality的获取器。- qualityChanged()#
当录制质量改变时发出信号。
属性
quality的通知信号。- record()#
开始录制。
当录制器的状态立即变为
RecordingState时,记录可能会异步开始。如果录制失败则发出信号
error,录制器状态将被重置回QMediaRecorder::StoppedState。注意
在移动设备上,录制将在调用 record 时设备的方向发生,并在录制期间锁定。为了避免用户界面的伪影,我们建议使用 QWindow 的 contentOrientation 属性将用户界面锁定到相同的方向,直到录制完成,然后再次解锁。
- recorderState()#
- 返回类型:
返回当前媒体录制器状态。
另请参阅
属性
recorderState的获取器。- recorderStateChanged(class state)#
- 参数:
state –
RecorderState
当媒体录制器的
状态改变时发出信号。属性
recorderState的通知信号。- setAudioBitRate(int bitRate)#
- 参数:
bitRate – int
以每秒比特数设置音频
比特率。另请参阅
属性
audioBitRate的设置器。- setAudioChannelCount(int channels)#
- 参数:
channels – int
设置音频
通道数。值为 -1 表示录制器应基于音频源的可用性以及编解码器的限制做出最佳选择。
另请参阅
属性
audioChannelCountᅟ的设置器。- setAudioSampleRate(sampleRate)#
- 参数:
sampleRate – int
设置音频的采样率(单位Hz)。
值为
-1表示记录器应根据音频源的可选性和编解码器的限制进行最佳选择。另请参阅
属性
audioSampleRateᅟ的设置器。- setEncodingMode(arg__1)#
- 参数:
arg__1 –
EncodingMode
设置编码模式的设置。
如果设置为
ConstantQualityEncoding,则使用质量编码参数,忽略比特率;否则使用比特率。属性
encodingModeᅟ的设置器。- setMediaFormat(format)#
- 参数:
format –
QMediaFormat
另请参阅
设置属性
mediaFormatᅟ的值。- setMetaData(metaData)#
- 参数:
metaData –
QMediaMetaData
设置元数据到
metaData。属性
metaDataᅟ的设置器。属性
outputLocationᅟ的设置器。属性
qualityᅟ的设置器。- setVideoBitRate(bitRate)#
- 参数:
bitRate – int
设置每秒视频的比特率。
另请参阅
属性
videoBitRateᅟ的设置器。- setVideoFrameRate(frameRate)#
- 参数:
frameRate – float
设置视频的
frameRate。0 的值表示录制器应根据视频源可用性和编解码器限制进行最佳选择。
另请参阅
属性
videoFrameRateᅟ的设置器。将编码视频的分辨率设置为
size。传递空 QSize 使录制器根据视频源可用性和编解码器限制选择最佳分辨率。
另请参阅
属性
videoResolutionᅟ的设置器。- setVideoResolution(width, height)
- 参数:
width – int
height – int
将编码视频的分辨率宽度设置为
width和高度设置为height。这是一个重载函数。
- stop()#
录制器将停止录制。处理的视频和音频数据可能仍需一些时间。当媒体录制器状态变为
StoppedState时,录制完成。- videoBitRate()#
- 返回类型:
int
返回压缩视频流的比特率,单位为每秒比特数。
另请参阅
视频比特率属性
videoBitRateᅟ的获取器。- videoBitRateChanged()#
当记录视频比特率发生变化时发出信号。
视频比特率属性的属性变化通知信号
videoBitRateᅟ。- videoFrameRate()#
- 返回类型:
浮点型
返回视频帧率。
另请参阅
视频帧率属性的获取器
videoFrameRateᅟ。- videoFrameRateChanged()#
当记录视频帧率发生变化时发出信号。
视频帧率属性的属性变化通知信号
videoFrameRateᅟ。返回编码视频的分辨率。
另请参阅
视频分辨率属性的获取器
videoResolutionᅟ。- videoResolutionChanged()#
当视频记录分辨率发生变化时发出信号。
视频分辨率属性的属性变化通知信号
videoResolutionᅟ。