Класс QAudioFormat
Класс QAudioFormat хранит информацию о параметрах потока аудиоданных. Подробнее...
| Заголовок: | #include <QAudioFormat> |
| qmake: | QT += multimedia |
Типы публичного доступа
| Перечисление | Endian { BigEndian, LittleEndian } |
| Перечисление | SampleType { Unknown, SignedInt, UnSignedInt, Float } |
Функции публичного доступа
| QAudioFormat(const QAudioFormat &other) | |
| QAudioFormat() | |
| QAudioFormat & | operator=(const QAudioFormat &other) |
| ~QAudioFormat() | |
| QAudioFormat::Endian | byteOrder() const |
| qint32 | bytesForDuration(qint64 duration) const |
| qint32 | bytesForFrames(qint32 frameCount) const |
| int | bytesPerFrame() const |
| int | channelCount() const |
| QString | codec() const |
| qint64 | durationForBytes(qint32 bytes) const |
| qint64 | durationForFrames(qint32 frameCount) const |
| qint32 | framesForBytes(qint32 byteCount) const |
| qint32 | framesForDuration(qint64 duration) const |
| bool | isValid() const |
| int | sampleRate() const |
| int | sampleSize() const |
| QAudioFormat::SampleType | sampleType() const |
| void | setByteOrder(QAudioFormat::Endian byteOrder) |
| void | setChannelCount(int channels) |
| void | setCodec(const QString &codec) |
| void | setSampleRate(int samplerate) |
| void | setSampleSize(int sampleSize) |
| void | setSampleType(QAudioFormat::SampleType sampleType) |
| bool | operator!=(const QAudioFormat &other) const |
| bool | operator==(const QAudioFormat &other) const |
Подробное описание
Формат аудиоданных определяет, как организованы данные в потоке аудиоданных, то есть как следует интерпретировать поток. Сам код кодирования указывается используемым codec().
В дополнение к кодированию, QAudioFormat содержит другие параметры, которые далее определяют, как организованы данные аудиосэмплов. Это частота, количество каналов, размер сэмпла, тип сэмпла и порядок байтов. Следующая таблица описывает их более подробно.
| Параметр | Описание |
|---|---|
| Частота дискретизации | Образцы в секунду аудиоданных в Герцах. |
| Количество каналов | Количество аудиоканалов (обычно один для моно или два для стерео) |
| Размер сэмпла | Сколько данных хранится в каждом сэмпле (обычно 8 или 16 бит). |
| Тип сэмпла | Числовое представление сэмпла (обычно целое число со знаком, целое число без знака или число с плавающей точкой) |
| Порядок байтов | Порядок байтов сэмпла (обычно little endian, big endian) |
Этот класс обычно используется совместно с QAudioInput или QAudioOutput, чтобы указать параметры читаемого или записываемого потока аудиоданных, или с QAudioBuffer при работе с образцами в памяти.
Вы можете получить совместимые с аудиоустройством форматы аудио с помощью функций в QAudioDeviceInfo. Этот класс также позволяет запрашивать доступные значения параметров для устройства, чтобы вы могли самостоятельно установить параметры. См. описание класса QAudioDeviceInfo для получения подробностей. Вам необходимо знать формат аудиопотоков, которые вы хотите воспроизводить или записывать.
В общем случае интерлизованных линейных PCM-данных, codec будет "audio/pcm", а сэмплы всех каналов будут интерлизованы. Один образец для каждого канала в один и тот же момент времени называется фреймом в Qt Multimedia (и других местах).
Документация по типам членов
перечисление QAudioFormat::Endian
| Константа | Значение | Описание |
|---|---|---|
QAudioFormat::BigEndian |
QSysInfo::BigEndian |
Сэмплы имеют порядок байтов big endian |
QAudioFormat::LittleEndian |
QSysInfo::LittleEndian |
Сэмплы имеют порядок байтов little endian |
перечисление QAudioFormat::SampleType
| Константа | Значение | Описание |
|---|---|---|
QAudioFormat::Unknown |
0 |
Не задано |
QAudioFormat::SignedInt |
1 |
Сэмплы являются целыми числами со знаком |
QAudioFormat::UnSignedInt |
2 |
Сэмплы являются целыми числами без знака |
QAudioFormat::Float |
3 |
Сэмплы являются числами с плавающей точкой |
Документация по функциям-членам
QAudioFormat::QAudioFormat(const QAudioFormat &other)
Создает новый формат аудио, используя other.
QAudioFormat::QAudioFormat()
Создает новый формат аудио.
Значения инициализируются следующим образом:
- sampleRate() = -1
- channelCount() = -1
- sampleSize() = -1
- byteOrder() = QAudioFormat::Endian(QSysInfo::ByteOrder)
-
sampleType() = QAudioFormat::Unknown
codec()= ""
QAudioFormat &QAudioFormat::operator=(const QAudioFormat &other)
Присваивает other данному экземпляру QAudioFormat.
QAudioFormat::~QAudioFormat()
Удаляет этот формат аудио.
QAudioFormat::Endian QAudioFormat::byteOrder() const
Возвращает текущее значение byteOrder.
См. также setByteOrder().
qint32 QAudioFormat::bytesForDuration(qint64 duration) const
Возвращает количество байтов, необходимое для данного аудиоформата в течение duration микросекунд.
Возвращает 0, если этот формат недействителен.
Обратите внимание, что может произойти некоторое округление, если duration не является точной долей sampleRate().
См. также durationForBytes().
qint32 QAudioFormat::bytesForFrames(qint32 frameCount) const
Возвращает количество байтов, необходимое для frameCount кадров этого формата.
Возвращает 0, если этот формат недействителен.
См. также bytesForDuration().
int QAudioFormat::bytesPerFrame() const
Возвращает количество байтов, необходимое для представления одного кадра (образец в каждом канале) в этом формате.
Возвращает 0, если формат недействителен.
int QAudioFormat::channelCount() const
Возвращает текущее значение количества каналов.
См. также setChannelCount().
QString QAudioFormat::codec() const
Возвращает текущий идентификатор кодека.
См. также setCodec() и QAudioDeviceInfo::supportedCodecs().
qint64 QAudioFormat::durationForBytes(qint32 bytes) const
Возвращает количество микросекунд, представляемых bytes в этом формате.
Возвращает 0, если этот формат недействителен.
Обратите внимание, что может произойти некоторое округление, если bytes не является точным кратным количеству байтов на кадр.
См. также bytesForDuration().
qint64 QAudioFormat::durationForFrames(qint32 frameCount) const
Возвращает количество микросекунд, представляемых frameCount кадрами в этом формате.
qint32 QAudioFormat::framesForBytes(qint32 byteCount) const
Возвращает количество кадров, представляемых byteCount в этом формате.
Обратите внимание, что может произойти некоторое округление, если byteCount не является точным кратным количеству байтов на кадр.
Каждый кадр имеет по одному образцу на канал.
См. также framesForDuration().
qint32 QAudioFormat::framesForDuration(qint64 duration) const
Возвращает количество кадров, необходимое для представления duration микросекунд в этом формате.
Обратите внимание, что может произойти некоторое округление, если duration не является точной долей sampleRate().
bool QAudioFormat::isValid() const
Возвращает true, если все параметры действительны.
int QAudioFormat::sampleRate() const
Возвращает текущую частоту дискретизации в Герцах.
См. также setSampleRate().
int QAudioFormat::sampleSize() const
Возвращает текущее значение размера выборки в битах.
См. также setSampleSize() и bytesPerFrame().
QAudioFormat::SampleType QAudioFormat::sampleType() const
Возвращает текущее значение SampleType.
См. также setSampleType().
void QAudioFormat::setByteOrder(QAudioFormat::Endian byteOrder)
Устанавливает byteOrder в byteOrder.
См. также byteOrder().
void QAudioFormat::setChannelCount(int channels)
Устанавливает количество каналов в channels.
См. также channelCount().
void QAudioFormat::setCodec(const QString &codec)
Устанавливает кодек в codec.
Параметр этой функции должен быть одним из типов, сообщенных функцией QAudioDeviceInfo::supportedCodecs() для аудиоустройства, с которым вы работаете.
См. также codec() и QAudioDeviceInfo::supportedCodecs().
void QAudioFormat::setSampleRate(int samplerate)
Устанавливает частоту дискретизации в samplerate Герц.
См. также sampleRate().
void QAudioFormat::setSampleSize(int sampleSize)
Устанавливает размер выборки в указанное значение sampleSize в битах.
Обычно это 8 или 16, но некоторые системы могут поддерживать более высокие размеры выборок.
См. также sampleSize().
void QAudioFormat::setSampleType(QAudioFormat::SampleType sampleType)
Устанавливает sampleType в sampleType.
См. также sampleType().
bool QAudioFormat::operator!=(const QAudioFormat &other) const
Возвращает true, если этот QAudioFormat не равен other QAudioFormat; в противном случае возвращает false.
Все элементы QAudioFormat используются для сравнения.
bool QAudioFormat::operator==(const QAudioFormat &other) const
Возвращает true, если этот QAudioFormat равен other QAudioFormat; в противном случае возвращает false.
Все элементы QAudioFormat используются для сравнения.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qaudioformat.html