Класс QAudioFormat
Класс QAudioFormat хранит информацию о параметрах потока аудиоданных. Подробнее...
| Заголовок: | #include <QAudioFormat> |
| qmake: | QT += multimedia |
Открытые типы
| перечисление | Endian { BigEndian, LittleEndian } |
| перечисление | SampleType { Unknown, SignedInt, UnSignedInt, Float } |
Открытые функции
| QAudioFormat() | |
| QAudioFormat(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 |
| QAudioFormat & | operator=(const QAudioFormat &other) |
| bool | operator==(const QAudioFormat &other) const |
Подробное описание
Класс QAudioFormat хранит информацию о параметрах потока аудиоданных.
Аудиоформат определяет, как данные в потоке аудиоданных организованы, то есть как интерпретировать поток. Само кодирование задаётся используемым codec().
В дополнение к кодированию, QAudioFormat содержит другие параметры, которые далее определяют, как организованы данные аудиосэмплов. Это частота, количество каналов, размер сэмпла, тип сэмпла и порядок байтов. В следующей таблице эти параметры описаны более подробно.
| Параметр | Описание |
|---|---|
| Частота дискретизации | Количество сэмплов аудиоданных в секунду в Герцах. |
| Количество каналов | Количество аудиоканалов (как правило, один для моно или два для стерео). |
| Размер сэмпла | Сколько данных хранится в каждом сэмпле (обычно 8 или 16 бит). |
| Тип сэмпла | Числовое представление сэмпла (обычно целые числа со знаком, без знака или числа с плавающей точкой). |
| Порядок байтов | Порядок байтов сэмпла (как правило, Little endian или Big endian). |
Этот класс, как правило, используется совместно с QAudioInput или QAudioOutput, чтобы разрешить вам указать параметры аудиопотока, который читается или записывается, или с QAudioBuffer, когда вы имеете дело с сэмплами в памяти.
Вы можете получить аудиоформаты, совместимые с используемым аудиоустройством, используя функции в QAudioDeviceInfo. Этот класс также позволяет запросить доступные значения параметров для устройства, чтобы вы могли задать параметры самостоятельно. Подробности см. в описании класса QAudioDeviceInfo. Вам нужно знать формат аудиопотоков, которые вы хотите воспроизвести или записать.
В общем случае данных линейного PCM, с interleaved кодированием, codec будет "audio/pcm", и сэмплы для всех каналов будут interleaved. Один сэмпл для каждого канала в данный момент времени называется фреймом в 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()
Создаёт новую аудиоформат.
Значения инициализируются следующим образом:
- sampleRate() = -1
- channelCount() = -1
- sampleSize() = -1
- byteOrder() = QAudioFormat::Endian(QSysInfo::ByteOrder)
-
sampleType() = QAudioFormat::Unknown
codec()= ""
QAudioFormat::QAudioFormat(const QAudioFormat &other)
Создаёт новую аудиоформат, используя other.
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.
QAudioFormat &QAudioFormat::operator=(const QAudioFormat &other)
Присваивает other этому 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.9/qaudioformat.html