Класс QAudioDecoder
Класс QAudioDecoder позволяет декодировать аудио. Подробнее...
| Заголовок: | #include <QAudioDecoder> |
| qmake: | QT += multimedia |
| Наследует: | QMediaObject |
Этот класс находится в стадии разработки и может быть изменён.
Типы публичного доступа
| Перечисление | Ошибка { НетОшибки, ОшибкаРесурса, ОшибкаФормата, ОшибкаДоступа, ОшибкаОтсутствияСервиса } |
| Перечисление | Состояние { СостояниеОстановки, СостояниеДекодирования } |
Свойства
- bufferAvailable : const bool
- ошибка : 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 истинно).
Если available ложно, буферы недоступны.
Примечание: Сигнал уведомления для свойства 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.
Примечание: Сигнал уведомления для свойства 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.14/qaudiodecoder.html