QMediaRecorder 类

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

头: #include <QMediaRecorder>
CMake: find_package(Qt6 COMPONENTS Multimedia REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
实例化: MediaRecorder
继承: QObject

公共类型

enum EncodingMode { ConstantQualityEncoding, ConstantBitRateEncoding, AverageBitRateEncoding, TwoPassEncoding }
enum Error { NoError, ResourceError, FormatError, OutOfSpaceError, LocationNotWritable }
enum Quality { VeryLowQuality, LowQuality, NormalQuality, HighQuality, VeryHighQuality }
enum RecorderState { StoppedState, RecordingState, PausedState }

特性

公共函数

  QMediaRecorder (QObject * parent = nullptr)
virtual ~QMediaRecorder ()
QUrl actualLocation () const
int audioBitRate () const
int audioChannelCount () const
int audioSampleRate () const
qint64 duration () const
QMediaRecorder::EncodingMode encodingMode () const
QMediaRecorder::Error error () const
QString errorString () const
bool isAvailable () const
QMediaFormat mediaFormat () const
QMediaMetaData metaData () const
QUrl outputLocation () const
QMediaRecorder::Quality quality () const
QMediaRecorder::RecorderState recorderState () const
void setAudioBitRate (int bitRate )
void setAudioChannelCount (int channels )
void setAudioSampleRate (int sampleRate )
void setEncodingMode (QMediaRecorder::EncodingMode mode )
void setMediaFormat (const QMediaFormat & format )
void setMetaData (const QMediaMetaData & metaData )
void setOutputLocation (const QUrl & location )
void setQuality (QMediaRecorder::Quality quality )
void setVideoBitRate (int bitRate )
void setVideoFrameRate (qreal frameRate )
void setVideoResolution (const QSize & size )
void setVideoResolution (int width , int height )
int videoBitRate () const
qreal videoFrameRate () const
QSize videoResolution () const

公共槽

void pause ()
void record ()
void stop ()

信号

void actualLocationChanged (const QUrl & location )
void durationChanged (qint64 duration )
void errorChanged ()
void errorOccurred (QMediaRecorder::Error error , const QString & errorString )
void mediaFormatChanged ()
void metaDataChanged ()
void recorderStateChanged (QMediaRecorder::RecorderState state )

详细描述

QMediaRecorder 类编码和录制的媒体生成于 QMediaCaptureSession .

QMediaCaptureSession session;
QAudioInput audioInput;
session.setAudioInput(&input);
QMediaRecorder recorder;
session.setMediaRecorder(&recorder);
recorder.setQuality(QMediaRecorder::HighQuality);
recorder.setOutputLocation(QUrl::fromLocalFile("test.mp3"));
recorder.record();
					

成员类型文档编制

enum QMediaRecorder:: EncodingMode

枚举编码模式。

常量 描述
QMediaRecorder::ConstantQualityEncoding 0 Encoding will aim to have a constant quality, adjusting bitrate to fit.
QMediaRecorder::ConstantBitRateEncoding 1 Encoding will use a constant bit rate, adjust quality to fit.
QMediaRecorder::AverageBitRateEncoding 2 Encoding will try to keep an average bitrate setting, but will use more or less as needed.
QMediaRecorder::TwoPassEncoding 3 The media will first be processed to determine the characteristics, and then processed a second time allocating more bits to the areas that need it.

enum QMediaRecorder:: Error

常量 描述
QMediaRecorder::NoError 0 没有错误。
QMediaRecorder::ResourceError 1 Device is not ready or not available.
QMediaRecorder::FormatError 2 Current format is not supported.
QMediaRecorder::OutOfSpaceError 3 No space left on device.
QMediaRecorder::LocationNotWritable 4 The output location is not writable.

enum QMediaRecorder:: Quality

枚举品质编码级别。

常量
QMediaRecorder::VeryLowQuality 0
QMediaRecorder::LowQuality 1
QMediaRecorder::NormalQuality 2
QMediaRecorder::HighQuality 3
QMediaRecorder::VeryHighQuality 4

enum QMediaRecorder:: RecorderState

常量 描述
QMediaRecorder::StoppedState 0 The recorder is not active.
QMediaRecorder::RecordingState 1 The recording is requested.
QMediaRecorder::PausedState 2 The recorder is paused.

特性文档编制

[read-only] actualLocation : const QUrl

This property holds 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.

访问函数:

QUrl actualLocation () const

通知程序信号:

void actualLocationChanged (const QUrl & location )

[read-only] duration : const qint64

This property holds the recorded media duration in milliseconds.

访问函数:

qint64 duration () const

通知程序信号:

void durationChanged (qint64 duration )

outputLocation : QUrl

This property holds 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 output location can be relative or empty; in the latter case the recorder uses the system specific place and file naming scheme.

访问函数:

QUrl outputLocation () const
void setOutputLocation (const QUrl & location )

[read-only] recorderState : const QMediaRecorder::RecorderState

This property holds the current state of the media recorder.

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

访问函数:

QMediaRecorder::RecorderState recorderState () const

通知程序信号:

void recorderStateChanged (QMediaRecorder::RecorderState state )

成员函数文档编制

QMediaRecorder:: QMediaRecorder ( QObject * parent = nullptr)

Constructs a media recorder which records the media produced by a microphone and camera. The media recorder is a child of parent .

[signal] void QMediaRecorder:: actualLocationChanged (const QUrl & location )

Signals that the actual location of the recorded media has changed. This signal is usually emitted when recording starts.

注意: 通知程序信号对于特性 actualLocation .

[signal] void QMediaRecorder:: durationChanged ( qint64 duration )

信号 duration of the recorded media has changed.

注意: 通知程序信号对于特性 duration .

[signal] void QMediaRecorder:: errorOccurred ( QMediaRecorder::Error error , const QString & errorString )

Signals that an error has occurred, with errorString containing a description of the error.

[signal] void QMediaRecorder:: metaDataChanged ()

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

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

注意: 通知程序信号对于特性 metaData .

[slot] void QMediaRecorder:: 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.

[slot] void QMediaRecorder:: record ()

开始录制。

While the recorder state is changed immediately to c{ QMediaRecorder::RecordingState }, recording may start asynchronously.

If recording fails 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 QWindow and unlock it again once the recording is finished.

[signal] void QMediaRecorder:: recorderStateChanged ( QMediaRecorder::RecorderState state )

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

注意: 通知程序信号对于特性 recorderState .

[slot] void QMediaRecorder:: stop ()

停止录制。

The recorder state is changed to QMediaRecorder::StoppedState .

[virtual] QMediaRecorder:: ~QMediaRecorder ()

Destroys a media recorder object.

int QMediaRecorder:: audioBitRate () const

Returns the bit rate of the compressed audio stream in bits per second.

另请参阅 setAudioBitRate ().

int QMediaRecorder:: audioChannelCount () const

Returns the number of audio channels.

另请参阅 setAudioChannelCount ().

int QMediaRecorder:: audioSampleRate () const

Returns the audio sample rate in Hz.

另请参阅 setAudioSampleRate ().

QMediaRecorder::EncodingMode QMediaRecorder:: encodingMode () const

Returns the encoding mode.

另请参阅 setEncodingMode () 和 EncodingMode .

QMediaRecorder::Error QMediaRecorder:: error () const

返回当前错误状态。

注意: Getter 函数对于特性 error。

另请参阅 errorString ().

QString QMediaRecorder:: errorString () const

Returns a string describing the current error state.

注意: Getter function for property errorString.

另请参阅 error ().

bool QMediaRecorder:: isAvailable () const

返回 true if media recorder service ready to use.

QMediaMetaData QMediaRecorder:: metaData () const

Returns the metaData associated with the recording.

注意: Getter 函数对于特性 metaData。

另请参阅 setMetaData ().

QMediaRecorder::RecorderState QMediaRecorder:: recorderState () const

Returns the current media recorder state.

注意: Getter function for property recorderState.

另请参阅 QMediaRecorder::RecorderState .

void QMediaRecorder:: setAudioBitRate ( int bitRate )

Sets the audio bitRate 以位每秒为单位。

另请参阅 audioBitRate ().

void QMediaRecorder:: setAudioChannelCount ( int channels )

Sets the number of audio channels .

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

另请参阅 audioChannelCount ().

void QMediaRecorder:: setAudioSampleRate ( int sampleRate )

Sets the audio sampleRate in Hz.

A value of -1 indicates the recorder should make an optimal choice based on what is available from the audio source, and the limitations of the codec.

另请参阅 audioSampleRate ().

void QMediaRecorder:: setEncodingMode ( QMediaRecorder::EncodingMode mode )

设置编码 mode 设置。

ConstantQualityEncoding is set, the quality encoding parameter is used and bit rates are ignored, otherwise the bitrates are used.

另请参阅 encodingMode () 和 EncodingMode .

void QMediaRecorder:: setMetaData (const QMediaMetaData & metaData )

将元数据设为 metaData .

注意: To ensure that meta-data is set correctly, it should be set before starting the recording. Once the recording is started, any meta-data set will be attached to the next recording.

注意: Setter 函数对于特性 metaData .

另请参阅 metaData ().

void QMediaRecorder:: setVideoBitRate ( int bitRate )

设置视频 bitRate 以位每秒为单位。

另请参阅 videoBitRate ().

void QMediaRecorder:: setVideoFrameRate ( qreal frameRate )

设置视频 frameRate .

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.

另请参阅 videoFrameRate ().

void QMediaRecorder:: setVideoResolution (const QSize & size )

Sets the resolution of the encoded video to size .

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

另请参阅 videoResolution ().

void QMediaRecorder:: setVideoResolution ( int width , int height )

设置 width and height of the resolution of the encoded video.

这是重载函数。

int QMediaRecorder:: videoBitRate () const

Returns the bit rate of the compressed video stream in bits per second.

另请参阅 setVideoBitRate ().

qreal QMediaRecorder:: videoFrameRate () const

返回视频帧速率。

另请参阅 setVideoFrameRate ().

QSize QMediaRecorder:: videoResolution () const

Returns the resolution of the encoded video.

另请参阅 setVideoResolution ().