Класс QAudioDecoder
Класс QAudioDecoder позволяет декодировать аудио. Подробнее...
| Заголовок: | #include <QAudioDecoder> |
| qmake: | QT += multimedia |
| Наследует: | QMediaObject |
Этот класс разрабатывается и может быть изменён.
Открытые типы
| перечисление | Ошибка { БезОшибок, ОшибкаРесурса, ОшибкаФормата, ОшибкаДоступа, ОшибкаОтсутствияСервиса } |
| перечисление | Состояние { СостояниеОстановки, СостояниеДекодирования } |
Свойства
- bufferAvailable : const bool
- ошибка : const QString
- имяИсходногоФайла : QString
- состояние : const Состояние
Открытые функции
| QAudioDecoder(QObject *parent = nullptr) | |
| виртуальный | ~QAudioDecoder() |
| QAudioFormat | audioFormat() const |
| bool | bufferAvailable() const |
| qint64 | продолжительность() const |
| QAudioDecoder::Ошибка | ошибка() const |
| QString | описаниеОшибки() const |
| qint64 | позиция() const |
| QAudioBuffer | читать() const |
| void | установитьАудиоФормат(const QAudioFormat &format) |
| void | установитьИсходноеУстройство(QIODevice *device) |
| void | установитьИмяИсходногоФайла(const QString &fileName) |
| QIODevice * | исходноеУстройство() const |
| QString | имяИсходногоФайла() const |
| QAudioDecoder::Состояние | состояние() const |
Открытые слоты
| void | начать() |
| void | остановить() |
Сигналы
| void | изменениеДоступностиБуфера(bool available) |
| void | буферГотов() |
| void | изменениеПродолжительности(qint64 duration) |
| void | ошибка(QAudioDecoder::Ошибка error) |
| void | закончен() |
| void | изменениеФормата(const QAudioFormat &format) |
| void | изменениеПозиции(qint64 position) |
| void | изменениеИсточника() |
| void | изменениеСостояния(QAudioDecoder::Состояние state) |
Статические открытые члены
| QMultimedia::SupportEstimate | поддерживается(const QString &mimeType, const QStringList &codecs = QStringList()) |
Подробное описание
Класс QAudioDecoder — это высокоуровневый класс для декодирования локальных аудиомедиафайлов. Он похож на класс QMediaPlayer, за исключением того, что аудио предоставляется через этот API, а не передаётся непосредственно аудиооборудованию, и не поддерживает списки воспроизведения и сетевые или потоковые медиа.
См. также QAudioBuffer.
Документация по типам членов
перечисление QAudioDecoder::Ошибка
Определяет условие ошибки медиаплеера.
| Константа | Значение | Описание |
|---|---|---|
QAudioDecoder::NoError |
0 |
Ошибка не произошла. |
QAudioDecoder::ResourceError |
1 |
Ресурс медиа не может быть разрешен. |
QAudioDecoder::FormatError |
2 |
Формат ресурса медиа не поддерживается. |
QAudioDecoder::AccessDeniedError |
3 |
Нет необходимых разрешений для воспроизведения ресурса медиа. |
QAudioDecoder::ServiceMissingError |
4 |
Не найден допустимый сервис воспроизведения, воспроизведение невозможно. |
перечисление QAudioDecoder::Состояние
Определяет текущее состояние медиаплеера.
| Константа | Значение | Описание |
|---|---|---|
QAudioDecoder::StoppedState |
0 |
Декодер не декодирует. Декодирование начнется с начала медиа. |
QAudioDecoder::DecodingState |
1 |
Аудиоплеер в данный момент декодирует медиа. |
Документация по свойствам
bufferAvailable : const bool
Это свойство указывает, доступен ли декодированный буфер аудиоданных.
Функции доступа:
| bool | bufferAvailable() const |
Сигнал уведомления:
| void | bufferAvailableChanged(bool available) |
error : const QString
Это свойство содержит строку, описывающую последнее состояние ошибки.
Функции доступа:
| QString | errorString() const |
См. также error().
sourceFilename : QString
Это свойство содержит имя активного файла, декодируемого объектом декодера.
Функции доступа:
| QString | sourceFilename() const |
| void | setSourceFilename(const QString &fileName) |
Сигнал уведомления:
| void | sourceChanged() |
state : const State
Это свойство содержит состояние воспроизведения аудиодекодера.
По умолчанию это свойство равно QAudioDecoder::Stopped
Функции доступа:
| QAudioDecoder::State | state() const |
Сигнал уведомления:
| void | stateChanged(QAudioDecoder::State state) |
Документация по функциям-членам
QAudioDecoder::QAudioDecoder(QObject *parent = nullptr)
Создаёт экземпляр QAudioDecoder, связанный с parent.
[signal] void QAudioDecoder::bufferAvailableChanged(bool available)
Сигнализирует о доступности нового буфера (если available равно true).
Если available равно false, буферы недоступны.
Примечание: Сигнал уведомления для свойства bufferAvailable.
См. также bufferAvailable() и bufferReady().
[signal] void QAudioDecoder::bufferReady()
Сигнализирует о доступности нового декодированного аудиобуфера для чтения.
См. также read() и bufferAvailable().
[signal] void QAudioDecoder::durationChanged(qint64 duration)
Сигнализирует о том, что предполагаемая duration декодированных данных изменилась.
См. также positionChanged().
[signal] void QAudioDecoder::error(QAudioDecoder::Error error)
Сигнализирует о возникновении состояния error.
Примечание: Сигнал error перегружен в этом классе. Для подключения к этому сигналу с помощью синтаксиса указателя на функцию Qt предоставляет удобную вспомогательную функцию для получения указателя на функцию, как показано в этом примере:
connect(audioDecoder, QOverload<QAudioDecoder::Error>::of(&QAudioDecoder::error),
[=](QAudioDecoder::Error error){ /* ... */ }); См. также errorString().
[signal] void QAudioDecoder::finished()
Сигнализирует об успешном завершении декодирования. Если декодирование завершается с ошибкой, вместо этого испускается сигнал ошибки.
См. также start(), stop() и error().
[signal] void QAudioDecoder::formatChanged(const QAudioFormat &format)
Сигнализирует о том, что текущий аудиоформат декодера изменился на format.
См. также audioFormat() и setAudioFormat().
[signal] void QAudioDecoder::positionChanged(qint64 position)
Сигнализирует о том, что текущая position декодера изменилась.
См. также durationChanged().
[signal] void QAudioDecoder::sourceChanged()
Сигнализирует о том, что текущий источник декодера изменился.
Примечание: Сигнал уведомления для свойства sourceFilename.
См. также sourceFilename() и sourceDevice().
[slot] void QAudioDecoder::start()
Начинает декодирование аудиоресурса.
По мере декодирования данных, сигнал bufferReady() будет испускаться, когда будет декодировано достаточно данных. После этого вызов read() вернёт аудиобуфер без блокировки.
Если вы вызовете read() до готовности буфера, будет возвращён недействительный буфер, также без блокировки.
См. также read().
[signal] void QAudioDecoder::stateChanged(QAudioDecoder::State state)
Сигнализирует о том, что состояние объекта декодера изменилось.
Примечание: Сигнал уведомления для свойства state.
[slot] void QAudioDecoder::stop()
Останавливает декодирование аудио. Вызов start() снова возобновит декодирование с начала.
[virtual] QAudioDecoder::~QAudioDecoder()
Удаляет объект аудиодекодера.
QAudioFormat QAudioDecoder::audioFormat() const
Возвращает текущий аудиоформат декодированного потока.
Любые возвращаемые буферы должны иметь этот формат.
См. также setAudioFormat() и formatChanged().
bool QAudioDecoder::bufferAvailable() const
Возвращает true, если буфер доступен для чтения, и false в противном случае. Если буфер недоступен, вызов функции read() вернёт недействительный буфер.
Примечание: Функция-получатель для свойства bufferAvailable.
qint64 QAudioDecoder::duration() const
Возвращает общее время (в миллисекундах) аудиопотока или -1, если оно недоступно.
QAudioDecoder::Error QAudioDecoder::error() const
Возвращает текущее состояние ошибки.
[static] QMultimedia::SupportEstimate QAudioDecoder::hasSupport(const QString &mimeType, const QStringList &codecs = QStringList())
Возвращает уровень поддержки аудиодекодером для mimeType и набора codecs.
qint64 QAudioDecoder::position() const
Возвращает позицию (в миллисекундах) последнего прочитанного буфера из декодера или -1, если буферы не были прочитаны.
QAudioBuffer QAudioDecoder::read() const
Читает буфер из декодера, если он доступен. Возвращает недействительный буфер, если нет доступных декодированных буферов или при ошибке. В обоих случаях функция не будет блокировать.
Вы должны либо отреагировать на сигнал bufferReady(), либо проверить функцию bufferAvailable() перед вызовом read(), чтобы убедиться, что вы получаете полезные данные.
void QAudioDecoder::setAudioFormat(const QAudioFormat &format)
Устанавливает желаемый аудиоформат для декодированных выборок в format.
Это свойство можно установить только при остановленном декодере. Установка этого свойства в других состояниях будет проигнорирована.
Если декодер не поддерживает этот формат, ошибка() будет установлена в FormatError.
Если вы не укажете формат, будет использован формат декодированного аудио. В противном случае будет применено некоторое преобразование формата.
Если вы хотите сбросить формат декодированного аудио на формат исходного аудиофайла, вы можете указать неверный формат.
См. также audioFormat().
void QAudioDecoder::setSourceDevice(QIODevice *device)
Устанавливает текущий аудио QIODevice в device.
При установке этого свойства любая текущая декодировка останавливается, и все буферы аудио отбрасываются.
Вы можете указать либо имя файла источника, либо источник QIODevice. Установка одного значения приведет к сбросу другого.
См. также sourceDevice().
void QAudioDecoder::setSourceFilename(const QString &fileName)
Устанавливает текущее имя аудиофайла в fileName.
При установке этого свойства любая текущая декодировка останавливается, и все буферы аудио отбрасываются.
Вы можете указать либо имя файла источника, либо источник QIODevice. Установка одного значения приведет к сбросу другого.
Примечание: Функция-сеттер для свойства sourceFilename.
См. также sourceFilename().
QIODevice *QAudioDecoder::sourceDevice() const
Возвращает текущий источник QIODevice, если он был задан. Если была вызвана setSourceFilename(), это будет 0.
См. также setSourceDevice().
QString QAudioDecoder::sourceFilename() const
Возвращает текущее имя файла для декодирования. Если была вызвана setSourceDevice, это будет пустая строка.
Примечание: Функция-геттер для свойства sourceFilename.
См. также setSourceFilename().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qaudiodecoder.html