媒体记录器 QML 类型
用于在 CaptureSession 中编码和记录从麦克风和摄像机捕获的媒体。 更多...
导入语句 | import QtMultimedia |
实例化 | QMediaRecorder |
属性
- actualLocation : QUrl
- audioBitRate : int
(自 6.6)
- audioChannelCount : int
(自 6.6)
- audioSampleRate : int
(自 6.6)
- duration : qint64
- encodingMode : 枚举
(自 6.6)
- error : 枚举
- errorString : 字符串
- mediaFormat : MediaFormat
- metaData : mediaMetaData
- outputLocation : QUrl
- quality : 枚举
- recorderState : 枚举
- videoBitRate : int
(自 6.6)
- videoFrameRate : double
(自 6.6)
- videoResolution : Size
(自 6.6)
信号
- actualLocationChanged(const QUrl &location)
- durationChanged(qint64 duration)
- errorOccurred(Error error, const QString &errorString)
- metaDataChanged()
- recorderStateChanged(RecorderState state)
方法
详细描述
媒体记录器元素可以在 CaptureSession 中使用来录制和编码从麦克风和摄像机捕获的音频和视频
下面的代码演示了一个简单的捕获会话,其中包含使用默认摄像头和默认音频输入的 MediaRecorder
CaptureSession { id: captureSession camera: Camera { id: camera active: true } audioInput: AudioInput {} recorder: MediaRecorder { id: recorder } }
下面的代码演示了如何开始和停止录制
CameraButton { text: "Record" visible: recorder.recorderState !== MediaRecorder.RecordingState onClicked: recorder.record() } CameraButton { id: stopButton text: "Stop" visible: recorder.recorderState === MediaRecorder.RecordingState onClicked: recorder.stop() }
属性文档
actualLocation : QUrl |
最后媒体内容的实际位置。
实际位置通常在开始录制后可用,并在设置新位置或开始新的录制时重置。
audioBitRate : int |
此属性保留压缩音频流的比特率(每秒比特数)。
此属性是在Qt 6.6中引入的。
audioChannelCount : int |
此属性保留音频通道数。
此属性是在Qt 6.6中引入的。
audioSampleRate : int |
此属性保留音频采样率(Hz)。
此属性是在Qt 6.6中引入的。
duration : qint64 |
此属性包含录制的媒体持续时间(毫秒)。
encodingMode : 枚举 |
error : 枚举 |
此属性包含当前媒体录制器的错误状态。
常数 | 描述 |
---|---|
MediaRecorder.NoError | 不在错误状态。 |
MediaRecorder.ResourceError | 系统资源不足。 |
MediaRecorder.FormatError | 当前格式不受支持。 |
MediaRecorder.OutOfSpaceError | 设备上没有空间。 |
MediaRecorder.LocationNotWriteable | 输出位置不可写。 |
mediaFormat : MediaFormat |
此属性包含录制器的当前MediaFormat。
outputLocation : QUrl |
媒体内容的目标位置。
设置位置可能会失败,例如,当服务仅支持本地文件系统位置,但传递了网络URL。如果操作失败,则会发出errorOccurred()信号。
位置可以是相对的或空的。如果为空,录制器将使用系统特定的位置和文件命名方案。
另请参阅 错误发生。
quality : 枚举 |
枚举质量编码等级。
常数 | 值 |
---|---|
MediaRecorder.VeryLowQuality | |
MediaRecorder.LowQuality | |
MediaRecorder.NormalQuality | |
MediaRecorder.HighQuality | |
MediaRecorder.VeryHighQuality |
recorderState : 枚举 |
videoBitRate : int |
此属性存储压缩视频流的比特率(每秒比特数)。
此属性是在Qt 6.6中引入的。
videoFrameRate : real |
此属性存储视频帧率。
值为0表示录制器应根据视频源可用性和编解码器的限制来选择最佳选项。
此属性是在Qt 6.6中引入的。
videoResolution : Size |
此属性存储编码视频的分辨率。
设置一个空的Size,使录制器根据视频源可用性和编解码器的限制来选择最佳分辨率。
此属性是在Qt 6.6中引入的。
信号文档
actualLocationChanged(const QUrl &location) |
指示已更改已记录媒体的实际location。
该信号通常在开始录制时发出。
注意:对应的处理程序是 onActualLocationChanged
。
durationChanged(qint64 duration) |
指示已记录媒体的duration已更改。
注意:对应的处理程序是 onDurationChanged
。
errorOccurred(Error error, const QString &errorString) |
指示发生了error。
errorString 包含错误描述。
注意:对应的处理程序是 onErrorOccurred
。
metaDataChanged() |
信号传媒数据已更改。
如果有多个元数据元素更改,则只发出metaDataChanged()一次。
注意:对应的处理程序是 onMetaDataChanged
。
recorderStateChanged(RecorderState state) |
指示媒体录制器的state已更改。
注意:对应的处理程序是 onRecorderStateChanged
。
方法文档
暂停() |
录制() |
开始录制。
虽然录制器状态立即更改为MediaRecorder.RecordingState
,但录制可能异步启动。
如果录制失败,则“error”信号会发出,并且录制器状态将重置为QMediaRecorder.StoppedState
。
注意:在移动设备上,录制将在调用record时设备的方向上发生,并在录制期间锁定。为了避免在用户界面上的伪影,我们建议在录制期间使用Window的内容Orientation属性保持用户界面锁定到相同的方向,一旦录制完成,再解锁。
停止() |
停止录制。
录制器将停止录制。处理挂起的视频和音频数据可能需要一些时间。当媒体录制器的状态更改为QMediaRecorder::StoppedState时,录制完成。
© 2024 Qt 公司有限公司。本文件中包含的文档贡献为其各自所有者的版权。本提供的文档是根据由自由软件基金会发布的GNU 自由文档许可证第1.3版的条款许可。Qt及其相关标志是芬兰以及/或者全球其他国家的The Qt Company Ltd的商标。所有其他商标均为各自所有者的财产。