媒体记录器 QML 类型

用于在 CaptureSession 中编码和记录从麦克风和摄像机捕获的媒体。 更多...

导入语句import QtMultimedia
实例化 QMediaRecorder

属性

信号

方法

详细描述

媒体记录器元素可以在 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 [自6.6起]

此属性保留压缩音频流的比特率(每秒比特数)。

此属性是在Qt 6.6中引入的。


audioChannelCount : int [自6.6起]

此属性保留音频通道数。

此属性是在Qt 6.6中引入的。


audioSampleRate : int [自6.6起]

此属性保留音频采样率(Hz)。

此属性是在Qt 6.6中引入的。


duration : qint64 [只读]

此属性包含录制的媒体持续时间(毫秒)。


encodingMode : 枚举 [自6.6起]

此属性包含编码模式。

此属性是在Qt 6.6中引入的。

另请参阅 QMediaRecorder::EncodingMode


error : 枚举 [只读]

此属性包含当前媒体录制器的错误状态。

常数描述
MediaRecorder.NoError不在错误状态。
MediaRecorder.ResourceError系统资源不足。
MediaRecorder.FormatError当前格式不受支持。
MediaRecorder.OutOfSpaceError设备上没有空间。
MediaRecorder.LocationNotWriteable输出位置不可写。

errorString : 字符串 [只读]

此属性包含一个描述当前错误状态的字符串。

另请参阅 错误


mediaFormat : MediaFormat

此属性包含录制器的当前MediaFormat。


metaData : 媒体元数据

此属性包含与录制相关的元数据。

开始录制时,分配的任何元数据都将附加到该录制。

注意: 在开始录制之前分配元数据以确保其正确分配。

另请参阅 媒体元数据


outputLocation : QUrl

媒体内容的目标位置。

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

位置可以是相对的或空的。如果为空,录制器将使用系统特定的位置和文件命名方案。

另请参阅 错误发生


quality : 枚举

枚举质量编码等级。

常数
MediaRecorder.VeryLowQuality
MediaRecorder.LowQuality
MediaRecorder.NormalQuality
MediaRecorder.HighQuality
MediaRecorder.VeryHighQuality

recorderState : 枚举 [只读]

此属性包含当前媒体录制器的状态。

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

常数描述
MediaRecorder.StoppedState录制器不活动。
MediaRecorder.RecordingState已请求录制。
MediaRecorder.PausedState录制器暂停。

videoBitRate : int [since 6.6]

此属性存储压缩视频流的比特率(每秒比特数)。

此属性是在Qt 6.6中引入的。


videoFrameRate : real [since 6.6]

此属性存储视频帧率。

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

此属性是在Qt 6.6中引入的。


videoResolution : Size [since 6.6]

此属性存储编码视频的分辨率。

设置一个空的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


方法文档

暂停()

暂停录制。

录制器状态更改为QMediaRecorder.PausedState。

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


录制()

开始录制。

虽然录制器状态立即更改为MediaRecorder.RecordingState,但录制可能异步启动。

如果录制失败,则“error”信号会发出,并且录制器状态将重置为QMediaRecorder.StoppedState

注意:在移动设备上,录制将在调用record时设备的方向上发生,并在录制期间锁定。为了避免在用户界面上的伪影,我们建议在录制期间使用Window的内容Orientation属性保持用户界面锁定到相同的方向,一旦录制完成,再解锁。


停止()

停止录制。

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


© 2024 Qt 公司有限公司。本文件中包含的文档贡献为其各自所有者的版权。本提供的文档是根据由自由软件基金会发布的GNU 自由文档许可证第1.3版的条款许可。Qt及其相关标志是芬兰以及/或者全球其他国家的The Qt Company Ltd的商标。所有其他商标均为各自所有者的财产。