Класс QMediaRecorder
Класс QMediaRecorder используется для записи медиаконтента. Подробнее...
| Заголовок: | #include <QMediaRecorder> |
| qmake: | QT += multimedia |
| Наследует: | QObject и QMediaBindableInterface |
| Наследуется: |
Публичные типы
| Перечисление | Ошибка { НетОшибок, ОшибкаРесурса, ОшибкаФормата, ОшибкаНедостаточногоМесто } |
| Перечисление | Состояние { СостояниеОстановки, СостояниеЗаписи, СостояниеПаузы } |
| Перечисление | Статус { СтатусНедоступен, СтатусНеЗагружен, СтатусЗагрузки, СтатусЗагружен, ..., СтатусЗавершения } |
Свойства
|
|
- 1 свойство унаследовано от QObject
Открытые функции
| QMediaRecorder(QMediaObject *mediaObject, QObject *parent = Q_NULLPTR) | |
| ~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 |
| 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) |
| State | state() const |
| Status | status() const |
| QStringList | supportedAudioCodecs() const |
| QList<int> | supportedAudioSampleRates(const QAudioEncoderSettings &settings = QAudioEncoderSettings(), bool *continuous = Q_NULLPTR) const |
| QStringList | supportedContainers() const |
| QList<qreal> | supportedFrameRates(const QVideoEncoderSettings &settings = QVideoEncoderSettings(), bool *continuous = Q_NULLPTR) const |
| QList<QSize> | supportedResolutions(const QVideoEncoderSettings &settings = QVideoEncoderSettings(), bool *continuous = Q_NULLPTR) const |
| QStringList | supportedVideoCodecs() const |
| QString | videoCodecDescription(const QString &codec) const |
| QVideoEncoderSettings | videoSettings() const |
| qreal | volume() const |
Переопределённые открытые функции
| virtual QMediaObject * | mediaObject() const override |
- 32 открытые функции унаследованы от QObject
- 1 открытая функция унаследована от QMediaBindableInterface
Открытые слоты
| void | pause() |
| void | record() |
| void | setMuted(bool muted) |
| void | setVolume(qreal volume) |
| void | stop() |
- 1 public slot inherited from QObject
Сигналы
| void | actualLocationChanged(const QUrl &location) |
| void | availabilityChanged(bool available) |
| void | availabilityChanged(QMultimedia::AvailabilityStatus availability) |
| void | durationChanged(qint64 duration) |
| void | error(QMediaRecorder::Error error) |
| void | metaDataAvailableChanged(bool available) |
| void | metaDataChanged() |
| void | metaDataChanged(const QString &key, const QVariant &value) |
| void | metaDataWritableChanged(bool writable) |
| void | mutedChanged(bool muted) |
| void | stateChanged(QMediaRecorder::State state) |
| void | statusChanged(QMediaRecorder::Status status) |
| void | volumeChanged(qreal volume) |
- 2 signals inherited from QObject
Дополнительные унаследованные члены
- 11 static public members inherited from QObject
- 9 protected functions inherited from QObject
- 1 protected function inherited from QMediaBindableInterface
Подробное описание
Класс QMediaRecorder используется для записи медиаконтента.
Класс 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
Это свойство указывает, доступны ли метаданные объекта медиа.
Если значение истинно, метаданные доступны, в противном случае они недоступны.
Функции доступа:
| bool | isMetaDataAvailable() const |
Сигнал уведомления:
| void | metaDataAvailableChanged(bool available) |
metaDataWritable : const bool
Это свойство указывает, можно ли изменять метаданные объекта медиа.
Если значение истинно, метаданные могут быть изменены, в противном случае они только для чтения.
Функции доступа:
| 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(). Состояние рекордера также может асинхронно изменяться при возникновении ошибок записи.
Функции доступа:
| State | state() const |
Сигнал уведомления:
| void | stateChanged(QMediaRecorder::State state) |
status : const QMediaRecorder::Status
Это свойство содержит текущий статус рекордера медиа.
Статус изменяется асинхронно и отражает фактический статус рекордера медиа.
Функции доступа:
| 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 = Q_NULLPTR)
Создаёт рекордер медиа, который записывает медиа, произведенное объектом mediaObject.
parent передается объекту QMediaObject.
QMediaRecorder::~QMediaRecorder()
Удаляет объект рекордера медиа.
[signal] void QMediaRecorder::actualLocationChanged(const QUrl &location)
Сигнализирует о том, что фактическое location записанного медиа изменилось. Этот сигнал обычно испускается при запуске записи.
Примечание: Сигнал уведомления для свойства actualLocation.
QString QMediaRecorder::audioCodecDescription(const QString &codec) const
Возвращает описание аудио codec.
QAudioEncoderSettings QMediaRecorder::audioSettings() const
Возвращает настройки аудиокодека, используемые в настоящее время.
См. также setAudioSettings() и setEncodingSettings().
QMultimedia::AvailabilityStatus QMediaRecorder::availability() const
Возвращает доступность этой функциональности.
См. также availabilityChanged().
[signal] void QMediaRecorder::availabilityChanged(bool available)
Сигнализирует о том, что рекордер медиа теперь доступен (если available равно true) или нет.
Примечание: Сигнал availabilityChanged перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя функции Qt предоставляет удобную вспомогательную функцию получения указателя функции, как показано в этом примере:
connect(mediaRecorder, QOverload<bool>::of(&QMediaRecorder::availabilityChanged),
[=](bool available){ /* ... */ });
[signal] void QMediaRecorder::availabilityChanged(QMultimedia::AvailabilityStatus availability)
Сигнализирует о том, что доступность службы изменилась на availability.
Примечание: Сигнал availabilityChanged перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя на функцию Qt предоставляет удобную функцию для получения указателя на функцию, как показано в этом примере:
connect(mediaRecorder, QOverload<QMultimedia::AvailabilityStatus>::of(&QMediaRecorder::availabilityChanged),
[=](QMultimedia::AvailabilityStatus availability){ /* ... */ }); QStringList QMediaRecorder::availableMetaData() const
Возвращает список ключей, для которых доступны метаданные.
QString QMediaRecorder::containerDescription(const QString &format) const
Возвращает описание контейнера format.
QString QMediaRecorder::containerFormat() const
Возвращает выбранный формат контейнера.
См. также setContainerFormat().
[signal] void QMediaRecorder::durationChanged(qint64 duration)
Сигнализирует о том, что продолжительность записанного медиа изменилась.
Примечание: Сигнал-уведомление для свойства duration.
Error QMediaRecorder::error() const
Возвращает текущее состояние ошибки.
См. также errorString().
[signal] void QMediaRecorder::error(QMediaRecorder::Error error)
Сигнализирует о возникновении ошибки error.
Примечание: Сигнал error перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя на функцию Qt предоставляет удобную функцию для получения указателя на функцию, как показано в этом примере:
connect(mediaRecorder, QOverload<QMediaRecorder::Error>::of(&QMediaRecorder::error),
[=](QMediaRecorder::Error error){ /* ... */ }); QString QMediaRecorder::errorString() const
Возвращает строку, описывающую текущее состояние ошибки.
См. также error().
bool QMediaRecorder::isAvailable() const
Возвращает true, если служба записи медиа готова к использованию.
См. также availabilityChanged().
[override virtual] QMediaObject *QMediaRecorder::mediaObject() const
Переопределено из QMediaBindableInterface::mediaObject().
Возвращает экземпляр QMediaObject, к которому привязана эта запись QMediaRecorder, или 0 в противном случае.
QVariant QMediaRecorder::metaData(const QString &key) const
Возвращает значение, связанное с метаданными с ключом key.
См. также setMetaData().
[signal] void QMediaRecorder::metaDataAvailableChanged(bool available)
Сигнализирует о том, что состояние доступности метаданных объекта медиа изменилось.
Примечание: Сигнал-уведомление для свойства metaDataAvailable.
[signal] void QMediaRecorder::metaDataChanged()
Сигнализирует о том, что метаданные объекта медиа изменились.
Если несколько элементов метаданных изменены, сигнал metaDataChanged(const QString &key, const QVariant &value) вызывается для каждого из них, а signal metaDataChanged() вызывается один раз.
Примечание: Сигнал metaDataChanged перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя на функцию Qt предоставляет удобную функцию для получения указателя на функцию, как показано в этом примере:
connect(mediaRecorder, QOverload<>::of(&QMediaRecorder::metaDataChanged),
[=](){ /* ... */ });
[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::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.
void QMediaRecorder::setAudioSettings(const QAudioEncoderSettings &settings)
Устанавливает параметры кодировщика звука settings.
Если некоторые параметры не указаны или передан null-указатель, кодировщик выберет параметры кодирования по умолчанию, в зависимости от свойств источника медиа.
Изменение параметров возможно только когда кодировщик находится в состоянии 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.
Если некоторые параметры не указаны или передан null-указатель, кодировщик выберет параметры кодирования по умолчанию, в зависимости от свойств источника медиа.
Изменение параметров возможно только когда кодировщик находится в состоянии QMediaEncoder::StoppedState.
См. также audioSettings(), videoSettings() и containerFormat().
void QMediaRecorder::setMetaData(const QString &key, const QVariant &value)
Устанавливает значение value для метаданных с ключом key.
Примечание: Для корректного установки метаданных, их нужно установить до начала записи. После остановки записи, все установленные метаданные будут присоединены к следующей записи.
См. также metaData().
void QMediaRecorder::setVideoSettings(const QVideoEncoderSettings &settings)
Устанавливает параметры видео кодировщика settings.
Если некоторые параметры не указаны или передан null-указатель, кодировщик выберет параметры кодирования по умолчанию, в зависимости от свойств источника медиа.
Изменение параметров возможно только когда кодировщик находится в состоянии QMediaEncoder::StoppedState.
См. также audioSettings(), videoSettings() и containerFormat().
State QMediaRecorder::state() const
Возвращает текущее состояние записывающего устройства.
Примечание: Функция-получатель для свойства state.
См. также QMediaRecorder::State.
END_OF_DOCUMENT_MARKER
[signal] void QMediaRecorder::stateChanged(QMediaRecorder::State state)
Сигнализирует о том, что состояние медиа-регистратора изменилось на state.
Примечание: Сигнал-уведомление для свойства state.
Status QMediaRecorder::status() const
Возвращает текущий статус медиа-регистратора.
Примечание: Функция-геттер для свойства status.
См. также QMediaRecorder::Status.
[slot] void QMediaRecorder::stop()
Остановить запись.
Состояние регистратора изменяется на QMediaRecorder::StoppedState.
QStringList QMediaRecorder::supportedAudioCodecs() const
Возвращает список поддерживаемых кодеков аудио.
QList<int> QMediaRecorder::supportedAudioSampleRates(const QAudioEncoderSettings &settings = QAudioEncoderSettings(), bool *continuous = Q_NULLPTR) const
Возвращает список поддерживаемых частот дискретизации аудио.
Если в качестве параметра передан ненулевой settings, возвращаемый список сокращается до частот дискретизации, поддерживаемых с частично применёнными настройками.
Это можно использовать для запроса списка частот дискретизации, поддерживаемых конкретным кодеком аудио.
Если кодек поддерживает произвольные частоты дискретизации в пределах поддерживаемого диапазона, *continuous устанавливается в true, в противном случае *continuous устанавливается в false.
QStringList QMediaRecorder::supportedContainers() const
Возвращает список поддерживаемых контейнеров форматов.
QList<qreal> QMediaRecorder::supportedFrameRates(const QVideoEncoderSettings &settings = QVideoEncoderSettings(), bool *continuous = Q_NULLPTR) const
Возвращает список частот кадров, при которых можно кодировать видео.
Если в качестве параметра передан ненулевой settings, возвращаемый список сокращается до частот кадров, поддерживаемых с частично применёнными настройками, такими как кодек видео или разрешение.
Если кодек поддерживает произвольные частоты кадров в поддерживаемом диапазоне, *continuous устанавливается в true, в противном случае *continuous устанавливается в false.
См. также QVideoEncoderSettings::frameRate().
QList<QSize> QMediaRecorder::supportedResolutions(const QVideoEncoderSettings &settings = QVideoEncoderSettings(), bool *continuous = Q_NULLPTR) const
Возвращает список разрешений, при которых можно кодировать видео.
Если в качестве параметра передан ненулевой settings, возвращаемый список сокращается до разрешений, поддерживаемых с частично применёнными настройками, такими как кодек видео или частота кадров.
Если кодек поддерживает произвольные разрешения в поддерживаемом диапазоне, *continuous устанавливается в true, в противном случае *continuous устанавливается в 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.9/qmediarecorder.html