Класс QAudioDecoder
Класс QAudioDecoder позволяет декодировать аудио. Подробнее...
| Заголовок: | #include <QAudioDecoder> |
| qmake: | QT += multimedia |
| Наследует: | QMediaObject |
Этот класс находится в разработке и может быть изменён.
Типы публичного доступа
| перечисление | Ошибка { НетОшибки, ОшибкаРесурса, ОшибкаФормата, ОшибкаДоступа, ОшибкаОтсутствияСервиса } |
| перечисление | Состояние { СостояниеОстановки, СостояниеДекодирования } |
Свойства
- bufferAvailable : const bool
- error : const QString
- имяИсходногоФайла : QString
- состояние : const State
Функции публичного доступа
| QAudioDecoder(QObject *parent = nullptr) | |
| virtual | ~QAudioDecoder() |
| QAudioFormat | формаАудио() const |
| bool | буферДоступен() 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.
Если вы не укажете формат, будет использован формат декодированного аудио. В противном случае будет применено некоторое преобразование формата.
Если вы хотите сбросить формат декодированного аудио на формат исходного аудиофайла, вы можете указать недействительный параметр format.
См. также 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.13/qaudiodecoder.html