Spec-Zone.ru › Qt

Класс QMediaRecorder

Класс QMediaRecorder используется для кодирования и записи сессии захвата. Подробнее...

Заголовок: #include <QMediaRecorder>
CMake: find_package(Qt6 COMPONENTS Multimedia REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
Создаётся из: MediaRecorder
Наследует: QObject
  • Список всех членов, включая унаследованные

Типы публичного доступа

перечисление EncodingMode { ConstantQualityEncoding, ConstantBitRateEncoding, AverageBitRateEncoding, TwoPassEncoding }
перечисление Error { NoError, ResourceError, FormatError, OutOfSpaceError, LocationNotWritable }
перечисление Quality { VeryLowQuality, LowQuality, NormalQuality, HighQuality, VeryHighQuality }
перечисление RecorderState { StoppedState, RecordingState, PausedState }

Свойства

  • actualLocation : const QUrl
  • duration : const qint64
  • outputLocation : QUrl
  • recorderState : const QMediaRecorder::RecorderState

Функции публичного доступа

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();

Документация по типам членов

Перечисление QMediaRecorder::EncodingMode

Перечисляет режимы кодирования.

Постоянная Значение Описание
QMediaRecorder::ConstantQualityEncoding 0 Кодирование будет стремиться к постоянному качеству, изменяя битрейт для соответствия.
QMediaRecorder::ConstantBitRateEncoding 1 Кодирование будет использовать постоянный битрейт, изменяя качество для соответствия.
QMediaRecorder::AverageBitRateEncoding 2 Кодирование будет пытаться поддерживать средний битрейт, но будет использовать больше или меньше по мере необходимости.
QMediaRecorder::TwoPassEncoding 3 Сначала медиа будет обработано для определения характеристик, а затем повторно обработано, выделяя больше битов для областей, которые нуждаются в этом.

enum QMediaRecorder::Error

Постоянная Значение Описание
QMediaRecorder::NoError 0 Нет ошибок.
QMediaRecorder::ResourceError 1 Устройство не готово или недоступно.
QMediaRecorder::FormatError 2 Текущий формат не поддерживается.
QMediaRecorder::OutOfSpaceError 3 На устройстве закончилось место.
QMediaRecorder::LocationNotWritable 4 Место назначения недоступно для записи.

enum QMediaRecorder::Quality

Перечисляет уровни кодирования качества.

Постоянная Значение
QMediaRecorder::VeryLowQuality 0
QMediaRecorder::LowQuality 1
QMediaRecorder::NormalQuality 2
QMediaRecorder::HighQuality 3
QMediaRecorder::VeryHighQuality 4

enum QMediaRecorder::RecorderState

Постоянная Значение Описание
QMediaRecorder::StoppedState 0 Запись не активна.
QMediaRecorder::RecordingState 1 Запись запрошена.
QMediaRecorder::PausedState 2 Запись приостановлена.

Документация свойств

[read-only] actualLocation : const QUrl

Это свойство содержит фактическое расположение последнего медиаконтента.

Фактическое расположение обычно доступно после начала записи и сбрасывается при установке нового расположения или начале новой записи.

Функции доступа:

QUrl actualLocation() const

Сигнал уведомления:

void actualLocationChanged(const QUrl &location)

[read-only] duration : const qint64

Это свойство содержит продолжительность записанного медиа в миллисекундах.

Функции доступа:

qint64 duration() const

Сигнал уведомления:

void durationChanged(qint64 duration)

outputLocation : QUrl

Это свойство содержит место назначения медиаконтента.

Установка расположения может завершиться ошибкой, например, когда сервис поддерживает только расположения локальной файловой системы, но был передан URL сети. Если операция завершится ошибкой, будет выпущен сигнал errorOccured().

Расположение вывода может быть относительным или пустым; в последнем случае рекордер использует специфичный для системы способ определения места и наименования файла.

Функции доступа:

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

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

Это свойство содержит текущее состояние рекордера медиа.

Свойство состояния представляет собой пользовательский запрос и изменяется синхронно во время вызовов record(), pause() или stop(). Состояние рекордера также может измениться асинхронно при возникновении ошибки записи.

Функции доступа:

QMediaRecorder::RecorderState recorderState() const

Сигнал уведомления:

void recorderStateChanged(QMediaRecorder::RecorderState state)

Документация по функциям-членам

QMediaRecorder::QMediaRecorder(QObject *parent = nullptr)

Создает рекордер медиа, который записывает медиа, созданное микрофоном и камерой. Рекордер медиа является дочерним элементом parent.

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

Сигнализирует о том, что фактическое location записанного медиа изменилось. Этот сигнал обычно излучается при запуске записи.

Примечание: Сигнал уведомления для свойства actualLocation.

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

Сигнализирует о том, что duration записанного медиа изменилось.

Примечание: Сигнал уведомления для свойства duration.

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

Сигнализирует о том, что произошла ошибка, а errorString содержит описание ошибки.

[signal] void QMediaRecorder::metaDataChanged()

Сигнализирует о том, что метаданные объекта медиа изменились.

Если несколько элементов метаданных изменены, metaDataChanged() излучается один раз.

Примечание: Сигнал уведомления для свойства metaData.

[slot] void QMediaRecorder::pause()

Приостанавливает запись.

Состояние рекордера изменяется на QMediaRecorder::PausedState.

В зависимости от платформы, приостановка записи может быть не поддерживаемой. В этом случае состояние рекордера не изменяется.

[slot] void QMediaRecorder::record()

Начать запись.

Хотя состояние рекордера сразу же изменяется на QMediaRecorder::RecordingState, запись может начаться асинхронно.

Если запись завершится ошибкой, сигнал error() будет выпущен, а состояние рекордера будет сброшено обратно к начальному состоянию.

Примечание: На мобильных устройствах запись будет происходить в ориентации устройства на момент вызова record и заблокирована на время записи. Чтобы избежать артефактов на пользовательском интерфейсе, мы рекомендуем сохранить пользовательский интерфейс заблокированным в той же ориентации, что и запись, используя свойство contentOrientation QWindow, и разблокировать его снова после завершения записи.

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

Сигнализирует о том, что состояние рекордера медиа изменилось.

Примечание: Сигнал уведомления для свойства recorderState.

[slot] void QMediaRecorder::stop()

Останавливает запись.

Состояние записывающего устройства изменено на QMediaRecorder::StoppedState.

[virtual] QMediaRecorder::~QMediaRecorder()

Уничтожает объект записывающего устройства медиа.

int QMediaRecorder::audioBitRate() const

Возвращает битрейт сжатого аудиопотока в битах в секунду.

См. также setAudioBitRate().

int QMediaRecorder::audioChannelCount() const

Возвращает количество аудиоканалов.

См. также setAudioChannelCount().

int QMediaRecorder::audioSampleRate() const

Возвращает частоту дискретизации аудио в Гц.

См. также setAudioSampleRate().

QMediaRecorder::EncodingMode QMediaRecorder::encodingMode() const

Возвращает режим кодирования.

См. также setEncodingMode() и EncodingMode.

QMediaRecorder::Error QMediaRecorder::error() const

Возвращает текущее состояние ошибки.

Примечание: Функция-геттер для свойства error.

См. также errorString().

QString QMediaRecorder::errorString() const

Возвращает строку, описывающую текущее состояние ошибки.

Примечание: Функция-геттер для свойства errorString.

См. также error().

bool QMediaRecorder::isAvailable() const

Возвращает, если служба записывающего устройства медиа готова к использованию.

QMediaMetaData QMediaRecorder::metaData() const

Возвращает metaData, связанную с записью.

Примечание: Функция-геттер для свойства metaData.

См. также setMetaData().

QMediaRecorder::RecorderState QMediaRecorder::recorderState() const

Возвращает текущее состояние записывающего устройства медиа.

Примечание: Функция-геттер для свойства recorderState.

См. также QMediaRecorder::RecorderState.

void QMediaRecorder::setAudioBitRate(int bitRate)

Устанавливает аудио bitRate в битах в секунду.

См. также audioBitRate().

void QMediaRecorder::setAudioChannelCount(int channels)

Устанавливает количество аудио channels.

Значение -1 указывает, что записывающее устройство должно выбрать оптимальный вариант, исходя из возможностей аудиоисточника и ограничений кодека.

См. также audioChannelCount().

void QMediaRecorder::setAudioSampleRate(int sampleRate)

Устанавливает аудио sampleRate в Гц.

Значение -1 указывает, что записывающее устройство должно выбрать оптимальный вариант, исходя из возможностей аудиоисточника и ограничений кодека.

См. также audioSampleRate().

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

Устанавливает настройку режима кодирования mode.

Если установлен ConstantQualityEncoding, используется параметр кодирования качества, а битрейты игнорируются, в противном случае используются битрейты.

См. также encodingMode() и EncodingMode.

void QMediaRecorder::setMetaData(const QMediaMetaData &metaData)

Устанавливает метаданные в metaData.

Примечание: Чтобы правильно установить метаданные, их следует установить перед началом записи. После начала записи любые установленные метаданные будут присоединены к следующей записи.

Примечание: Функция-сеттер для свойства metaData.

См. также metaData().

void QMediaRecorder::setVideoBitRate(int bitRate)

Устанавливает видео bitRate в битах в секунду.

См. также videoBitRate().

void QMediaRecorder::setVideoFrameRate(qreal frameRate)

Устанавливает видео frameRate.

Значение 0 указывает, что записывающее устройство должно выбрать оптимальный вариант, исходя из возможностей видеоисточника и ограничений кодека.

См. также videoFrameRate().

void QMediaRecorder::setVideoResolution(const QSize &size)

Устанавливает разрешение кодированного видео на size.

Передайте пустой QSize, чтобы записывающее устройство выбрало оптимальное разрешение, исходя из возможностей видеоисточника и ограничений кодека.

См. также videoResolution().

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

Устанавливает width и height разрешения кодированного видео.

Это перегруженная функция.

int QMediaRecorder::videoBitRate() const

Возвращает битрейт сжатого видеопотока в битах в секунду.

См. также setVideoBitRate().

qreal QMediaRecorder::videoFrameRate() const

Возвращает частоту кадров видео.

См. также setVideoFrameRate().

QSize QMediaRecorder::videoResolution() const

Возвращает разрешение кодированного видео.

См. также setVideoResolution().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qmediarecorder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API