Класс 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 |
- 31 открытая функция унаследована от QObject
- 1 открытая функция унаследована от QMediaBindableInterface
Открытые слоты
| void | пауза() |
| void | запись() |
| void | установитьБезЗвука(bool muted) |
| void | установитьГромкость(qreal volume) |
| void | остановить() |
- 1 public slot унаследован от QObject
Сигналы
| void | изменилосьТекущееРасположение(const QUrl &location) |
| void | измениласьДоступность(bool available) |
| void | измениласьДоступность(QMultimedia::AvailabilityStatus availability) |
| void | измениласьПродолжительность(qint64 duration) |
| void | ошибка(QMediaRecorder::Error error) |
| void | измениласьДоступностьМетаданных(bool available) |
| void | изменилисьМетаданные() |
| void | изменилисьМетаданные(const QString &key, const QVariant &value) |
| void | измениласьЗаписьМетаданных(bool writable) |
| void | изменилосьБезЗвука(bool muted) |
| void | изменилосьСостояние(QMediaRecorder::State state) |
| void | изменилсяСтатус(QMediaRecorder::Status status) |
| void | измениласьГромкость(qreal volume) |
- 2 сигнала унаследованы от QObject
Дополнительные унаследованные члены
- 11 статических public членов унаследованы от QObject
- 9 protected функций унаследованы от QObject
- 1 protected функция унаследована от 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 |
Запись не активна. |
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(). Состояние записывателя также может изменяться асинхронно при возникновении ошибок записи.
Функции доступа:
| State | state() const |
Сигнал уведомления:
| void | stateChanged(QMediaRecorder::State state) |
status : const QMediaRecorder::Status
Это свойство содержит текущий статус медиа-записывателя.
Статус изменяется асинхронно и представляет собой фактическое состояние медиа-записывателя.
Функции доступа:
| Status | status() const |
Сигнал уведомления:
| void | statusChanged(QMediaRecorder::Status status) |
volume : qreal
Это свойство содержит линейный коэффициент усиления аудио для медиа-записывателя.
Функции доступа:
| 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 перегружен в этом классе. Для подключения к этому сигналу с использованием синтаксиса указателя на функцию необходимо указать тип сигнала в статическом преобразовании, как показано в данном примере:
connect(mediaRecorder, static_cast<void(QMediaRecorder::*)(bool)>(&QMediaRecorder::availabilityChanged),
[=](bool available){ /* ... */ });
[signal] void QMediaRecorder::availabilityChanged(QMultimedia::AvailabilityStatus availability)
Сигнализирует, что доступность службы изменилась на availability.
Примечание: Сигнал availabilityChanged перегружен в этом классе. Для подключения к этому сигналу с использованием синтаксиса указателя на функцию необходимо указать тип сигнала в статическом преобразовании, как показано в данном примере:
connect(mediaRecorder, static_cast<void(QMediaRecorder::*)(QMultimedia::AvailabilityStatus)>(&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.
Примечание: Сигнал-уведомитель для свойства duration.
Error QMediaRecorder::error() const
Возвращает текущее состояние ошибки.
См. также errorString().
[signal] void QMediaRecorder::error(QMediaRecorder::Error error)
Сигнализирует о том, что произошла ошибка error.
Примечание: Сигнал error перегружен в этом классе. Чтобы подключиться к этому сигналу с помощью синтаксиса указателя на функцию, необходимо указать тип сигнала в статическом преобразовании, как показано в этом примере:
connect(mediaRecorder, static_cast<void(QMediaRecorder::*)(QMediaRecorder::Error)>(&QMediaRecorder::error),
[=](QMediaRecorder::Error error){ /* ... */ }); QString QMediaRecorder::errorString() const
Возвращает строку, описывающую текущее состояние ошибки.
См. также error().
bool QMediaRecorder::isAvailable() const
Возвращает true, если служба записи медиа готова к использованию.
См. также availabilityChanged().
[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)
Сигнализирует о том, что состояние доступности метаданных объекта медиа изменилось на available.
Примечание: Сигнал-уведомитель для свойства metaDataAvailable.
[signal] void QMediaRecorder::metaDataChanged()
Сигнализирует о том, что метаданные объекта медиа изменились.
Если изменяется несколько элементов метаданных, сигнал metaDataChanged(const QString &key, const QVariant &value) отправляется для каждого из них, а сигнал metaDataChanged() отправляется один раз.
Примечание: Сигнал metaDataChanged перегружен в этом классе. Чтобы подключиться к этому сигналу с помощью синтаксиса указателя на функцию, необходимо указать тип сигнала в статическом преобразовании, как показано в этом примере:
connect(mediaRecorder, static_cast<void(QMediaRecorder::*)()>(&QMediaRecorder::metaDataChanged),
[=](){ /* ... */ });
[signal] void QMediaRecorder::metaDataChanged(const QString &key, const QVariant &value)
Сигнализирует о изменении значения одного элемента метаданных value с заданным ключом key.
Примечание: Сигнал metaDataChanged перегружен в этом классе. Чтобы подключиться к этому сигналу с помощью синтаксиса указателя на функцию, необходимо указать тип сигнала в статическом преобразовании, как показано в этом примере:
connect(mediaRecorder, static_cast<void(QMediaRecorder::*)(const QString &, const QVariant &)>(&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.
[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, в противном случае — в false.
QStringList QMediaRecorder::supportedContainers() const
Возвращает список поддерживаемых форматов контейнеров.
QList<qreal> QMediaRecorder::supportedFrameRates(const QVideoEncoderSettings &settings = QVideoEncoderSettings(), bool *continuous = Q_NULLPTR) const
Возвращает список частот кадров, на которых видео может быть закодировано.
Если передан не нулевой параметр settings, возвращаемый список сокращается до частот кадров, поддерживаемых применёнными частичными настройками, такими как кодек видео или разрешение.
Если кодек поддерживает произвольные частоты кадров в поддерживаемом диапазоне, *continuous устанавливается в значение true, в противном случае — в false.
См. также QVideoEncoderSettings::frameRate().
QList<QSize> QMediaRecorder::supportedResolutions(const QVideoEncoderSettings &settings = QVideoEncoderSettings(), bool *continuous = Q_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/archives/qt-5.6/qmediarecorder.html