Класс QMediaRecorder
Класс QMediaRecorder используется для записи медиаконтента. Подробнее...
| Заголовок: | #include <QMediaRecorder> |
| qmake: | QT += multimedia |
| Наследует: | QObject и QMediaBindableInterface |
| Наследуется от: |
Общедоступные типы
| Перечисление | Ошибка { НетОшибок, ОшибкаРесурса, ОшибкаФормата, ОшибкаНедостаточногоМесто} |
| Перечисление | Состояние { СостояниеОстановлено, СостояниеЗаписи, СостояниеПриостановлено} |
| Перечисление | Статус { СтатусНеДоступен, СтатусНеЗагружен, СтатусЗагрузки, СтатусЗагружен, СтатусЗапуска, …, СтатусЗавершения} |
Свойства
|
|
Открытые функции
| QMediaRecorder(QMediaObject *mediaObject, QObject *parent = nullptr) | |
| virtual | ~QMediaRecorder() |
| QUrl | actualLocation() const |
| QString | audioCodecDescription(const QString &codec) const |
| QAudioEncoderSettings | audioSettings() const |
| QMultimedia::AvailabilityStatus | availability() const |
| QStringList | availableMetaData() const |
| QString | containerDescription(const QString &format) const |
| QString | containerFormat() const |
| qint64 | duration() const |
| QMediaRecorder::Error | error() const |
| QString | errorString() const |
| bool | isAvailable() const |
| bool | isMetaDataAvailable() const |
| bool | isMetaDataWritable() const |
| bool | isMuted() const |
| QVariant | metaData(const QString &key) const |
| QUrl | outputLocation() const |
| void | setAudioSettings(const QAudioEncoderSettings &settings) |
| void | setContainerFormat(const QString &container) |
| void | setEncodingSettings(const QAudioEncoderSettings &audio, const QVideoEncoderSettings &video = QVideoEncoderSettings(), const QString &container = QString()) |
| void | setMetaData(const QString &key, const QVariant &value) |
| bool | setOutputLocation(const QUrl &location) |
| void | setVideoSettings(const QVideoEncoderSettings &settings) |
| QMediaRecorder::State | state() const |
| QMediaRecorder::Status | status() const |
| QStringList | supportedAudioCodecs() const |
| QList<int> | supportedAudioSampleRates(const QAudioEncoderSettings &settings = QAudioEncoderSettings(), bool *continuous = nullptr) const |
| QStringList | supportedContainers() const |
| QList<qreal> | supportedFrameRates(const QVideoEncoderSettings &settings = QVideoEncoderSettings(), bool *continuous = nullptr) const |
| QList<QSize> | supportedResolutions(const QVideoEncoderSettings &settings = QVideoEncoderSettings(), bool *continuous = nullptr) const |
| QStringList | supportedVideoCodecs() const |
| QString | videoCodecDescription(const QString &codec) const |
| QVideoEncoderSettings | videoSettings() const |
| qreal | volume() const |
Переопределенные открытые функции
| virtual QMediaObject * | mediaObject() const override |
Открытые слоты
| void | pause() |
| void | record() |
| void | setMuted(bool muted) |
| void | setVolume(qreal volume) |
| void | stop() |
Сигналы
| void | actualLocationChanged(const QUrl &location) |
| void | availabilityChanged(QMultimedia::AvailabilityStatus availability) |
| void | availabilityChanged(bool available) |
| void | durationChanged(qint64 duration) |
| void | error(QMediaRecorder::Error error) |
| void | metaDataAvailableChanged(bool available) |
| void | metaDataChanged(const QString &key, const QVariant &value) |
| void | metaDataChanged() |
| void | metaDataWritableChanged(bool writable) |
| void | mutedChanged(bool muted) |
| void | stateChanged(QMediaRecorder::State state) |
| void | statusChanged(QMediaRecorder::Status status) |
| void | volumeChanged(qreal volume) |
Подробное описание
Класс QMediaRecorder — это класс для записи медиа высокого уровня. Он не предназначен для использования самостоятельно, а для доступа к функциям записи медиа других объектов медиа, таких как QRadioTuner или QCamera.
recorder = new QMediaRecorder(camera);
QAudioEncoderSettings audioSettings;
audioSettings.setCodec("audio/amr");
audioSettings.setQuality(QMultimedia::HighQuality);
recorder->setAudioSettings(audioSettings);
recorder->setOutputLocation(QUrl::fromLocalFile(fileName));
recorder->record(); См. также QAudioRecorder.
Документация по типам членов
Перечисление QMediaRecorder::Error
| Постоянная | Значение | Описание |
|---|---|---|
QMediaRecorder::NoError |
0 |
Без ошибок. |
QMediaRecorder::ResourceError |
1 |
Устройство не готово или недоступно. |
QMediaRecorder::FormatError |
2 |
Текущий формат не поддерживается. |
QMediaRecorder::OutOfSpaceError |
3 |
На устройстве закончилось место. |
Перечисление QMediaRecorder::State
| Постоянная | Значение | Описание |
|---|---|---|
QMediaRecorder::StoppedState |
0 |
Запись не активна. Если это состояние после записи, то фактическая созданная запись завершила запись в конечное местоположение и готова на всех платформах, кроме Android. На Android из-за ограничений платформы нет способа гарантировать, что запись завершила запись в конечное местоположение. |
QMediaRecorder::RecordingState |
1 |
Запись запрошена. |
QMediaRecorder::PausedState |
2 |
Запись приостановлена. |
Перечисление QMediaRecorder::Status
| Постоянная | Значение | Описание |
|---|---|---|
QMediaRecorder::UnavailableStatus |
0 |
Запись недоступна или не поддерживается подключенным объектом медиа. |
QMediaRecorder::UnloadedStatus |
1 |
Запись доступна, но не загружена. |
QMediaRecorder::LoadingStatus |
2 |
Инициализация записи. |
QMediaRecorder::LoadedStatus |
3 |
Запись инициализирована и готова к записи медиа. |
QMediaRecorder::StartingStatus |
4 |
Запись запрошена, но еще не активна. |
QMediaRecorder::RecordingStatus |
5 |
Запись активна. |
QMediaRecorder::PausedStatus |
6 |
Запись приостановлена. |
QMediaRecorder::FinalizingStatus |
7 |
Запись остановлена, медиа завершается. |
Документация свойств
actualLocation : const QUrl
Это свойство содержит фактическое расположение последнего медиаконтента.
Фактическое расположение обычно доступно после начала записи и сбрасывается при установке нового расположения или начале новой записи.
Функции доступа:
| QUrl | actualLocation() const |
Сигнал уведомления:
| void | actualLocationChanged(const QUrl &location) |
duration : const qint64
Это свойство содержит продолжительность записанного медиа в миллисекундах.
Функции доступа:
| qint64 | duration() const |
Сигнал уведомления:
| void | durationChanged(qint64 duration) |
metaDataAvailable : const bool
Это свойство указывает, доступны ли метаданные объекта медиа.
Если значение true, метаданные доступны; в противном случае метаданных нет.
Функции доступа:
| bool | isMetaDataAvailable() const |
Сигнал уведомления:
| void | metaDataAvailableChanged(bool available) |
metaDataWritable : const bool
Это свойство указывает, можно ли изменять метаданные объекта медиа.
Если значение true, метаданные изменяемы; в противном случае они только для чтения.
Функции доступа:
| bool | isMetaDataWritable() const |
Сигнал уведомления:
| void | metaDataWritableChanged(bool writable) |
muted : bool
Это свойство указывает, заглушен ли аудиопоток записи.
Функции доступа:
| bool | isMuted() const |
| void | setMuted(bool muted) |
Сигнал уведомления:
| void | mutedChanged(bool muted) |
outputLocation : QUrl
Это свойство содержит место назначения медиаконтента.
Установка расположения может завершиться ошибкой, например, если служба поддерживает только локальные расположения файловой системы, но был передан URL сети. Если служба не поддерживает запись медиа, установка расположения вывода всегда завершится ошибкой.
Расположение location может быть относительным или пустым; в этом случае рекордер использует схему именования места и файлов, специфичную для системы. После начала записи QMediaRecorder::outputLocation() возвращает фактическое расположение вывода.
Функции доступа:
| QUrl | outputLocation() const |
| bool | setOutputLocation(const QUrl &location) |
state : const QMediaRecorder::State
Это свойство содержит текущее состояние рекордера медиа.
Свойство состояния отражает запрос пользователя и меняется синхронно во время вызовов record(), pause() или stop(). Состояние рекордера также может асинхронно изменяться при сбоях записи.
Функции доступа:
| QMediaRecorder::State | state() const |
Сигнал уведомления:
| void | stateChanged(QMediaRecorder::State state) |
status : const QMediaRecorder::Status
Это свойство содержит текущий статус рекордера медиа.
Статус изменяется асинхронно и отражает фактическое состояние рекордера медиа.
Функции доступа:
| QMediaRecorder::Status | status() const |
Сигнал уведомления:
| void | statusChanged(QMediaRecorder::Status status) |
volume : qreal
Это свойство содержит текущий уровень громкости аудиозаписи.
Громкость линейно масштабируется от 0.0 (тишина) до 1.0 (полная громкость). Значения вне этого диапазона будут ограничены.
Значение по умолчанию для громкости составляет 1.0.
Элементы управления громкостью в пользовательском интерфейсе обычно должны масштабироваться нелинейно. Например, использование логарифмической шкалы обеспечит линейные изменения в воспринимаемой громкости, что обычно ожидается от элемента управления громкостью. Подробнее см. QAudio::convertVolume().
Функции доступа:
| qreal | volume() const |
| void | setVolume(qreal volume) |
Сигнал уведомления:
| void | volumeChanged(qreal volume) |
Документация по членам-функциям
QMediaRecorder::QMediaRecorder(QMediaObject *mediaObject, QObject *parent = nullptr)
Создает рекордер медиа, который записывает медиа, производимое объектом mediaObject.
parent передаётся объекту QMediaObject.
[signal] void QMediaRecorder::actualLocationChanged(const QUrl &location)
Сигнализирует об изменении фактического расположения location записанного медиа. Этот сигнал обычно излучается при запуске записи.
Примечание: Сигнал уведомления для свойства actualLocation.
[signal] void QMediaRecorder::availabilityChanged(QMultimedia::AvailabilityStatus availability)
Сигнализирует об изменении доступности службы на availability.
Примечание: Сигнал availabilityChanged перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя на функцию Qt предоставляет удобную функцию для получения указателя на функцию, как показано в этом примере:
connect(mediaRecorder, QOverload<QMultimedia::AvailabilityStatus>::of(&QMediaRecorder::availabilityChanged),
[=](QMultimedia::AvailabilityStatus availability){ /* ... */ });
[signal] void QMediaRecorder::availabilityChanged(bool available)
Сигнализирует о том, что рекордер медиа теперь доступен (если available равно true) или нет.
Примечание: Сигнал availabilityChanged перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя на функцию Qt предоставляет удобную функцию для получения указателя на функцию, как показано в этом примере:
connect(mediaRecorder, QOverload<bool>::of(&QMediaRecorder::availabilityChanged),
[=](bool available){ /* ... */ });
[signal] void QMediaRecorder::durationChanged(qint64 duration)
Сигнализирует об изменении duration записанного медиа.
Примечание: Сигнал уведомления для свойства duration.
[signal] void QMediaRecorder::error(QMediaRecorder::Error error)
Сигнализирует о возникновении ошибки error.
Примечание: Сигнал error перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя на функцию Qt предоставляет удобную функцию для получения указателя на функцию, как показано в этом примере:
connect(mediaRecorder, QOverload<QMediaRecorder::Error>::of(&QMediaRecorder::error),
[=](QMediaRecorder::Error error){ /* ... */ });
[signal] void QMediaRecorder::metaDataAvailableChanged(bool available)
Сигнализирует о том, что состояние available метаданных объекта медиа изменилось.
Примечание: Сигнал-уведомление для свойства metaDataAvailable.
[signal] void QMediaRecorder::metaDataChanged(const QString &key, const QVariant &value)
Сигнализирует о изменении одного элемента метаданных value с заданным key.
Примечание: Сигнал metaDataChanged перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя на функцию Qt предоставляет удобную вспомогательную функцию для получения указателя на функцию, как показано в этом примере:
connect(mediaRecorder, QOverload<const QString &, const QVariant &>::of(&QMediaRecorder::metaDataChanged),
[=](const QString &key, const QVariant &value){ /* ... */ });
[signal] void QMediaRecorder::metaDataChanged()
Сигнализирует о том, что метаданные объекта медиа изменились.
Если изменяются несколько элементов метаданных, сигнал metaDataChanged(const QString &key, const QVariant &value) генерируется для каждого из них, а сигнал metaDataChanged() генерируется один раз.
Примечание: Сигнал metaDataChanged перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя на функцию Qt предоставляет удобную вспомогательную функцию для получения указателя на функцию, как показано в этом примере:
connect(mediaRecorder, QOverload<>::of(&QMediaRecorder::metaDataChanged),
[=](){ /* ... */ });
[signal] void QMediaRecorder::metaDataWritableChanged(bool writable)
Сигнализирует о том, что состояние writable метаданных объекта медиа изменилось.
Примечание: Сигнал-уведомление для свойства metaDataWritable.
[signal] void QMediaRecorder::mutedChanged(bool muted)
Сигнализирует о том, что состояние muted изменилось. Если true, запись заглушается.
Примечание: Сигнал-уведомление для свойства muted.
[slot] void QMediaRecorder::pause()
Приостановить запись.
Состояние рекордера изменяется на QMediaRecorder::PausedState.
В зависимости от платформы приостановка записи может быть не поддерживается, в этом случае состояние рекордера остается без изменений.
[slot] void QMediaRecorder::record()
Начать запись.
Хотя состояние рекордера немедленно изменяется на QMediaRecorder::RecordingState, запись может начаться асинхронно, с сигналом statusChanged(QMediaRecorder::RecordingStatus), выпущенным при запуске записи.
Если запись завершается неудачно, сигнал error() выпущен с состоянием рекордера, сброшенным обратно в QMediaRecorder::StoppedState.
[signal] void QMediaRecorder::stateChanged(QMediaRecorder::State state)
Сигнализирует о том, что состояние рекордера state изменилось.
Примечание: Сигнал-уведомление для свойства state.
[slot] void QMediaRecorder::stop()
Остановить запись.
Состояние рекордера изменяется на QMediaRecorder::StoppedState.
[virtual] QMediaRecorder::~QMediaRecorder()
Уничтожает объект рекордера медиа.
QString QMediaRecorder::audioCodecDescription(const QString &codec) const
Возвращает описание аудио codec.
QAudioEncoderSettings QMediaRecorder::audioSettings() const
Возвращает настройки кодировщика аудио, используемые в данный момент.
См. также setAudioSettings() и setEncodingSettings().
QMultimedia::AvailabilityStatus QMediaRecorder::availability() const
Возвращает доступность этой функциональности.
См. также availabilityChanged().
QStringList QMediaRecorder::availableMetaData() const
Возвращает список ключей, для которых доступны метаданные.
QString QMediaRecorder::containerDescription(const QString &format) const
Возвращает описание контейнера format.
QString QMediaRecorder::containerFormat() const
Возвращает выбранный формат контейнера.
См. также setContainerFormat().
QMediaRecorder::Error QMediaRecorder::error() const
Возвращает текущее состояние ошибки.
См. также errorString().
QString QMediaRecorder::errorString() const
Возвращает строку, описывающую текущее состояние ошибки.
См. также error().
bool QMediaRecorder::isAvailable() const
Возвращает true, если служба записи медиа готова к использованию.
См. также availabilityChanged().
[override virtual] QMediaObject *QMediaRecorder::mediaObject() const
Переопределяет: QMediaBindableInterface::mediaObject() const.
Возвращает экземпляр QMediaObject, к которому привязан этот QMediaRecorder, или 0 в противном случае.
QVariant QMediaRecorder::metaData(const QString &key) const
Возвращает значение, связанное с ключом метаданных key.
См. также setMetaData().
void QMediaRecorder::setAudioSettings(const QAudioEncoderSettings &settings)
Устанавливает настройки кодировщика аудио settings.
Если некоторые параметры не указаны или переданы нулевые настройки, кодировщик выберет параметры кодирования по умолчанию в зависимости от свойств источника медиа.
Изменение настроек возможно только когда кодировщик находится в состоянии QMediaEncoder::StoppedState.
См. также audioSettings(), videoSettings() и containerFormat().
void QMediaRecorder::setContainerFormat(const QString &container)
Устанавливает формат контейнера медиа container.
Если формат контейнера не указан, кодировщик выберет формат в зависимости от свойств источника медиа и выбранных настроек кодирования.
Изменение настроек возможно только когда кодировщик находится в состоянии QMediaEncoder::StoppedState.
См. также audioSettings(), videoSettings() и containerFormat().
void QMediaRecorder::setEncodingSettings(const QAudioEncoderSettings &audio, const QVideoEncoderSettings &video = QVideoEncoderSettings(), const QString &container = QString())
Устанавливает настройки кодировщиков audio и video и формат контейнера container.
Если некоторые параметры не указаны или переданы нулевые настройки, кодировщик выберет параметры кодирования по умолчанию в зависимости от свойств источника медиа.
Изменение настроек возможно только когда кодировщик находится в состоянии QMediaEncoder::StoppedState.
См. также audioSettings(), videoSettings() и containerFormat().
void QMediaRecorder::setMetaData(const QString &key, const QVariant &value)
Устанавливает значение value для ключа метаданных key.
Примечание: Чтобы обеспечить правильную установку метаданных, она должна быть установлена перед запуском записи. После остановки записи любые установленные метаданные будут добавлены к следующей записи.
См. также metaData().
void QMediaRecorder::setVideoSettings(const QVideoEncoderSettings &settings)
Устанавливает настройки кодировщика видео settings.
Если некоторые параметры не указаны или переданы нулевые настройки, кодировщик выберет параметры кодирования по умолчанию в зависимости от свойств источника медиа.
Изменение настроек возможно только когда кодировщик находится в состоянии QMediaEncoder::StoppedState.
См. также audioSettings(), videoSettings() и containerFormat().
QMediaRecorder::State QMediaRecorder::state() const
Возвращает текущее состояние медиа-регистратора.
Примечание: Функция-геттер для свойства state.
См. также QMediaRecorder::State.
QMediaRecorder::Status QMediaRecorder::status() const
Возвращает текущий статус медиа-регистратора.
Примечание: Функция-геттер для свойства status.
См. также QMediaRecorder::Status.
QStringList QMediaRecorder::supportedAudioCodecs() const
Возвращает список поддерживаемых кодеков аудио.
QList<int> QMediaRecorder::supportedAudioSampleRates(const QAudioEncoderSettings &settings = QAudioEncoderSettings(), bool *continuous = nullptr) const
Возвращает список поддерживаемых частот дискретизации аудио.
Если передан ненулевой параметр settings, возвращаемый список сокращается до частот дискретизации, поддерживаемых с применёнными настройками.
Это можно использовать для запроса списка частот дискретизации, поддерживаемых конкретным кодеком аудио.
Если кодек поддерживает произвольные частоты дискретизации в пределах поддерживаемого диапазона, *continuous устанавливается в true, в противном случае в false.
QStringList QMediaRecorder::supportedContainers() const
Возвращает список поддерживаемых форматов контейнеров.
QList<qreal> QMediaRecorder::supportedFrameRates(const QVideoEncoderSettings &settings = QVideoEncoderSettings(), bool *continuous = nullptr) const
Возвращает список частот кадров, с которыми видео может быть закодировано.
Если передан ненулевой параметр settings, возвращаемый список сокращается до частот кадров, поддерживаемых с применёнными частичными настройками, такими как кодек видео или разрешение.
Если кодек поддерживает произвольные частоты кадров в пределах поддерживаемого диапазона, *continuous устанавливается в true, в противном случае в false.
См. также QVideoEncoderSettings::frameRate().
QList<QSize> QMediaRecorder::supportedResolutions(const QVideoEncoderSettings &settings = QVideoEncoderSettings(), bool *continuous = nullptr) const
Возвращает список разрешений, с которыми видео может быть закодировано.
Если передан ненулевой параметр settings, возвращаемый список сокращается до разрешений, поддерживаемых с применёнными частичными настройками, такими как кодек видео или частота кадров.
Если кодек поддерживает произвольные разрешения в пределах поддерживаемого диапазона, *continuous устанавливается в true, в противном случае в false.
См. также QVideoEncoderSettings::resolution().
QStringList QMediaRecorder::supportedVideoCodecs() const
Возвращает список поддерживаемых кодеков видео.
QString QMediaRecorder::videoCodecDescription(const QString &codec) const
Возвращает описание кодека видео codec.
См. также setEncodingSettings().
QVideoEncoderSettings QMediaRecorder::videoSettings() const
Возвращает настройки кодера видео, используемые в данный момент.
См. также setVideoSettings() и setEncodingSettings().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qmediarecorder.html