Класс 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