MediaRecorder QML 类型

要编码和录制的媒体生成于 CaptureSession . 更多...

import 语句: import QtMultimedia
实例化: QMediaRecorder

特性

信号

方法

详细描述

The MediaRecorder element can be used within a CaptureSession to record and encode audio and video captured from a microphone and camera

The code below shows a simple capture session containing a MediaRecorder using the default camera and default audio input.

CaptureSession {
    id: captureSession
    camera: Camera {
        id: camera
        active: true
    }
    audioInput: AudioInput {}
    recorder: MediaRecorder {
        id: recorder
    }
}
					

The code below shows how the recording can be started and stopped.

CameraButton {
    text: "Record"
    visible: recorder.recorderState !== MediaRecorder.RecordingState
    onClicked: recorder.record()
}
CameraButton {
    id: stopButton
    text: "Stop"
    visible: recorder.recorderState === MediaRecorder.RecordingState
    onClicked: recorder.stop()
}
					

另请参阅 CaptureSession , Camera , AudioInput ,和 ImageCapture .

特性文档编制

actualLocation : QUrl [read-only]

The actual location of the last media content.

The actual location is usually available after recording starts, and reset when new location is set or new recording starts.

audioBitRate : int [since 6.6]

This property holds the bit rate of the compressed audio stream in bits per second.

该特性在 Qt 6.6 引入。

audioChannelCount : int [since 6.6]

This property holds the number of audio channels.

该特性在 Qt 6.6 引入。

audioSampleRate : int [since 6.6]

This property holds the audio sample rate in Hz.

该特性在 Qt 6.6 引入。

duration : qint64 [read-only]

此特性保持录制媒体的持续时间 (以毫秒为单位)。

encodingMode : enumeration [since 6.6]

This property holds the encoding mode.

该特性在 Qt 6.6 引入。

另请参阅 QMediaRecorder::EncodingMode .

error : enumeration [read-only]

This property holds the current media recorder error state.

常量 描述
MediaRecorder.NoError Not in an error state.
MediaRecorder.ResourceError Not enough system resources
MediaRecorder.FormatError the current format is not supported.
MediaRecorder.OutOfSpaceError 设备没有剩余空间。
MediaRecorder.LocationNotWriteable 输出位置不可写。

errorString : string [read-only]

This property holds a string describing the current error state.

另请参阅 error .

mediaFormat : MediaFormat

This property holds the current MediaFormat of the recorder.

metaData : mediaMetaData

This property holds meta data associated with the recording.

When a recording is started, any meta-data assigned will be attached to that recording.

注意: Ensure that meta-data is assigned correctly by assigning it before starting the recording.

另请参阅 mediaMetaData .

outputLocation : QUrl

The destination location of media content.

Setting the location can fail, for example when the service supports only local file system locations but a network URL was passed. If the operation fails an errorOccured() signal is emitted.

The location can be relative or empty. If empty the recorder uses the system specific place and file naming scheme.

另请参阅 errorOccurred ().

quality : enumeration

枚举品质编码级别。

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

recorderState : enumeration [read-only]

This property holds the current media recorder state.

The state property represents the user request and is changed synchronously during record (), pause () 或 stop () calls. RecorderSstate may also change asynchronously when recording fails.

常量 描述
MediaRecorder.StoppedState 录制器不活动。
MediaRecorder.RecordingState 请求录制。
MediaRecorder.PausedState The recorder is pause.

videoBitRate : int [since 6.6]

This property holds the bit rate of the compressed video stream in bits per second.

该特性在 Qt 6.6 引入。

videoFrameRate : real [since 6.6]

This property holds the video frame rate.

A value of 0 indicates the recorder should make an optimal choice based on what is available from the video source and the limitations of the codec.

该特性在 Qt 6.6 引入。

videoResolution : Size [since 6.6]

This property holds the resolution of the encoded video.

Set an empty Size to make the recorder choose an optimal resolution based on what is available from the video source and the limitations of the codec.

该特性在 Qt 6.6 引入。

信号文档编制

actualLocationChanged (const QUrl & location )

Signals that the actual location of the recorded media has changed.

This signal is usually emitted when recording starts.

注意: 相应处理程序是 onActualLocationChanged .

durationChanged ( qint64 duration )

信号 duration of the recorded media has changed.

注意: 相应处理程序是 onDurationChanged .

errorOccurred ( Error error , const QString & errorString )

Signals that an error has occurred.

The errorString contains a description of the error.

注意: 相应处理程序是 onErrorOccurred .

metaDataChanged ()

Signals that a media object's meta-data has changed.

If multiple meta-data elements are changed metaDataChanged() is emitted once.

注意: 相应处理程序是 onMetaDataChanged .

recorderStateChanged ( RecorderState state )

Signals that a media recorder's state 已改变。

注意: 相应处理程序是 onRecorderStateChanged .

方法文档编制

pause ()

暂停录制。

The recorder state is changed to QMediaRecorder .PausedState.

Depending on the platform, pausing recording may be not supported. In this case the recorder state is unchanged.

record ()

Starts recording.

While the recorder state is changed immediately to MediaRecorder.RecordingState , recording may start asynchronously.

If recording fails, the error() signal is emitted with recorder state being reset back to QMediaRecorder.StoppedState .

注意: On mobile devices, recording will happen in the orientation the device had when calling record and is locked for the duration of the recording. To avoid artifacts on the user interface, we recommend to keep the user interface locked to the same orientation as long as the recording is ongoing using the contentOrientation property of the Window and unlock it again once the recording is finished.

stop ()

Stops the recording.

The recorder will stop the recording. Processing pending video and audio data might however still take some time. The recording is finished, once the state of the media recorder changes to QMediaRecorder::StoppedState .