Класс QMediaRecorder
Класс QMediaRecorder используется для записи медиа-контента. Подробнее...
| Заголовок: | #include <QMediaRecorder> |
| qmake: | QT += multimedia |
| Наследует: | QObject и QMediaBindableInterface |
| Наследуется от: |
Общедоступные типы
| Перечисление | Ошибка { НетОшибок, ОшибкаРесурса, ОшибкаФормата, ОшибкаНедостаточноМеста } |
| Перечисление | Состояние { Остановлено, Запись, Приостановлено } |
| Перечисление | Статус { НеДоступен, НеЗагружен, Загрузка, Загружено, ..., ЗаключительнаяОбработка } |
Свойства
|
|
- 1 свойство унаследовано от QObject
Публичные функции
| 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 |
- 31 публичная функция унаследована от 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
Статические публичные члены
| const QMetaObject | staticMetaObject |
- 9 static public members inherited from QObject
Защищенные переменные
| QMediaRecorderPrivate * | d_ptr |
Дополнительные унаследованные члены
- 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
Это свойство указывает, доступны ли метаданные объекта медиа.
Если значение 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
Это свойство содержит текущее состояние записывателя медиа.
Свойство 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.
[virtual] 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.
QMediaRecorder::Error QMediaRecorder::error() const
Возвращает текущее состояние ошибки.
См. также errorString().
[signal] void QMediaRecorder::error(QMediaRecorder::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) отправляется для каждого из них, а сигнал 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)
Сигнализирует о том, что состояние записи метаданных объекта медиа изменилось.
Примечание: Сигнал-уведомление для свойства metaDataWritable.
[signal] void QMediaRecorder::mutedChanged(bool 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.
Если некоторые параметры не указаны или передан нулевой объект настроек, кодер выберет параметры кодирования по умолчанию, в зависимости от свойств источника медиа.
Изменение настроек возможно только когда кодер находится в состоянии 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.
[signal] void QMediaRecorder::stateChanged(QMediaRecorder::State state)
Сигнализирует о том, что состояние медиа-регистратора изменилось на state.
Примечание: Сигнал-уведомление для свойства state.
QMediaRecorder::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 = 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.12/qmediarecorder.html