Класс QAudioFormat
Класс QAudioFormat хранит информацию о параметрах потока аудиоданных. Подробнее...
| Заголовок: | #include <QAudioFormat> |
| CMake: | find_package(Qt6 COMPONENTS Multimedia REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
| qmake: | QT += multimedia |
Публичные типы
| Перечисление | AudioChannelPosition { UnknownPosition, FrontLeft, FrontRight, FrontCenter, LFE, …, BottomFrontRight } |
| Перечисление | ChannelConfig { ChannelConfigUnknown, ChannelConfigMono, ChannelConfigStereo, ChannelConfig2Dot1, ChannelConfigSurround5Dot0, …, ChannelConfigSurround7Dot1 } |
| Перечисление | SampleFormat { Unknown, UInt8, Int16, Int32, Float } |
Публичные функции
| QAudioFormat(const QAudioFormat &other) | |
| QAudioFormat() | |
| QAudioFormat & | operator=(const QAudioFormat &other) |
| ~QAudioFormat() | |
| qint32 | bytesForDuration(qint64 microseconds) const |
| qint32 | bytesForFrames(qint32 frameCount) const |
| int | bytesPerFrame() const |
| int | bytesPerSample() const |
| QAudioFormat::ChannelConfig | channelConfig() const |
| int | channelCount() const |
| int | channelOffset(QAudioFormat::AudioChannelPosition channel) const |
| qint64 | durationForBytes(qint32 bytes) const |
| qint64 | durationForFrames(qint32 frameCount) const |
| qint32 | framesForBytes(qint32 byteCount) const |
| qint32 | framesForDuration(qint64 microseconds) const |
| bool | isValid() const |
| float | normalizedSampleValue(const void *sample) const |
| QAudioFormat::SampleFormat | sampleFormat() const |
| int | sampleRate() const |
| void | setChannelConfig(QAudioFormat::ChannelConfig config) |
| void | setChannelCount(int channels) |
| void | setSampleFormat(QAudioFormat::SampleFormat format) |
| void | setSampleRate(int samplerate) |
Подробное описание
Формат аудиоданных определяет, как организованы данные в потоке аудиоданных. Например, как интерпретировать поток.
QAudioFormat содержит параметры, определяющие, как организованы данные образцов аудиоданных. Это частота, количество каналов и формат образца. В следующей таблице эти параметры описаны более подробно.
| Параметр | Описание |
|---|---|
| Частота дискретизации | Образцы в секунду аудиоданных в Герцах. |
| Количество каналов | Количество аудиоканалов (обычно один для моно или два для стерео). Это количество последовательных образцов, которые вместе образуют один кадр в потоке. |
| Формат образца | Формат аудиообразцов в потоке. |
Этот класс используется совместно с QAudioSource или QAudioSink, чтобы позволить вам указать параметры потока аудиоданных, который читается или записывается, или с QAudioBuffer, когда вы работаете с образцами в памяти.
Образцы для всех каналов будут чередующимися. Один образец для каждого канала для одного и того же момента во времени называется кадром в Qt Multimedia (и других местах).
Вы можете получить форматы аудиоданных, совместимые с используемым аудиоустройством, с помощью функций в QAudioDevice. Этот класс также позволяет вам запросить доступные значения параметров для устройства, так что вы можете сами задать параметры. См. описание класса QAudioDevice для получения подробной информации. Вам необходимо знать формат аудиопотоков, которые вы хотите воспроизвести или записать.
Документация по типу члена
Перечисление QAudioFormat::AudioChannelPosition
Описание возможных позиций аудиоканалов. Они следуют стандартному определению, используемому в конфигурации 22.2 окружающего звука.
| Постоянная | Значение | Описание |
|---|---|---|
QAudioFormat::UnknownPosition |
0 |
Неизвестное положение |
QAudioFormat::FrontLeft |
1 |
|
QAudioFormat::FrontRight |
2 |
|
QAudioFormat::FrontCenter |
3 |
|
QAudioFormat::LFE |
4 |
Канал низкочастотных эффектов (сабвуфер) |
QAudioFormat::BackLeft |
5 |
|
QAudioFormat::BackRight |
6 |
|
QAudioFormat::FrontLeftOfCenter |
7 |
|
QAudioFormat::FrontRightOfCenter |
8 |
|
QAudioFormat::BackCenter |
9 |
|
QAudioFormat::LFE2 |
10 |
|
QAudioFormat::SideLeft |
11 |
|
QAudioFormat::SideRight |
12 |
|
QAudioFormat::TopFrontLeft |
13 |
|
QAudioFormat::TopFrontRight |
14 |
|
QAudioFormat::TopFrontCenter |
15 |
|
QAudioFormat::TopCenter |
16 |
|
QAudioFormat::TopBackLeft |
17 |
|
QAudioFormat::TopBackRight |
18 |
|
QAudioFormat::TopSideLeft |
19 |
|
QAudioFormat::TopSideRight |
20 |
|
QAudioFormat::TopBackCenter |
21 |
|
QAudioFormat::BottomFrontCenter |
22 |
|
QAudioFormat::BottomFrontLeft |
23 |
|
QAudioFormat::BottomFrontRight |
24 |
Константы перечисления QAudioFormat::ChannelConfig
Это перечисление описывает стандартизованную компоновку каналов аудио. Наиболее распространенные конфигурации — Mono, Stereo, 2.1 (стерео плюс низкочастотный эффект), 5.1 Surround и 7.1 Surround.
| Постоянная | Значение | Описание |
|---|---|---|
QAudioFormat::ChannelConfigUnknown |
0 |
Конфигурация канала неизвестна. |
QAudioFormat::ChannelConfigMono |
QtPrivate::channelConfig(FrontCenter) |
Аудио содержит один центральный канал. |
QAudioFormat::ChannelConfigStereo |
QtPrivate::channelConfig(FrontLeft, FrontRight) |
Аудио содержит два канала, левый и правый. |
QAudioFormat::ChannelConfig2Dot1 |
QtPrivate::channelConfig(FrontLeft, FrontRight, LFE) |
Аудио содержит три канала: левый, правый и LFE (низкочастотный эффект). |
QAudioFormat::ChannelConfigSurround5Dot0 |
QtPrivate::channelConfig(FrontLeft, FrontRight, FrontCenter, BackLeft, BackRight) |
Аудио содержит пять каналов: левый, правый, центральный, задний левый, задний правый. |
QAudioFormat::ChannelConfigSurround5Dot1 |
QtPrivate::channelConfig(FrontLeft, FrontRight, FrontCenter, LFE, BackLeft, BackRight) |
Аудио содержит 6 каналов: левый, правый, центральный, LFE, задний левый и задний правый. |
QAudioFormat::ChannelConfigSurround7Dot0 |
QtPrivate::channelConfig(FrontLeft, FrontRight, FrontCenter, BackLeft, BackRight, SideLeft, SideRight) |
Аудио содержит 7 каналов: левый, правый, центральный, задний левый, задний правый, боковой левый и боковой правый. |
QAudioFormat::ChannelConfigSurround7Dot1 |
QtPrivate::channelConfig(FrontLeft, FrontRight, FrontCenter, LFE, BackLeft, BackRight, SideLeft, SideRight) |
Аудио содержит 8 каналов: левый, правый, центральный, LFE, задний левый, задний правый, боковой левый и боковой правый. |
Константы перечисления QAudioFormat::SampleFormat
Qt всегда будет ожидать и использовать образцы в порядке байтов целевой платформы. При обработке аудиоданных из внешних источников убедитесь, что вы конвертируете их в правильный порядок байтов перед записью в QAudioSink или QAudioBuffer.
| Постоянная | Значение | Описание |
|---|---|---|
QAudioFormat::Unknown |
0 |
Не задано |
QAudioFormat::UInt8 |
1 |
Образцы — целые числа со знаком 8 бит без знака. |
QAudioFormat::Int16 |
2 |
Образцы — целые числа со знаком 16 бит. |
QAudioFormat::Int32 |
3 |
Образцы — целые числа со знаком 32 бит. |
QAudioFormat::Float |
4 |
Образцы — числа с плавающей запятой. |
Документация по функциям-членам
[default] QAudioFormat::QAudioFormat(const QAudioFormat &other)
Создаёт новый формат аудио, используя other.
[default] QAudioFormat::QAudioFormat()
Создаёт новый формат аудио.
Значения инициализируются следующим образом:
- sampleRate() = 0
- channelCount() = 0
- sampleFormat() = QAudioFormat::Unknown
[default] QAudioFormat &QAudioFormat::operator=(const QAudioFormat &other)
Присваивает other данному объекту QAudioFormat.
[default] QAudioFormat::~QAudioFormat()
Уничтожает этот формат аудио.
qint32 QAudioFormat::bytesForDuration(qint64 microseconds) const
Возвращает количество байтов, необходимых для этого формата аудио за microseconds.
Возвращает 0, если формат недействителен.
Обратите внимание, что может произойти некоторое округление, если microseconds не является точной дробью sampleRate().
См. также durationForBytes().
qint32 QAudioFormat::bytesForFrames(qint32 frameCount) const
Возвращает количество байтов, необходимых для frameCount кадров этого формата.
Возвращает 0, если формат недействителен.
См. также bytesForDuration().
int QAudioFormat::bytesPerFrame() const
Возвращает количество байтов, необходимых для представления одного кадра (образца в каждом канале) в этом формате.
Возвращает 0, если формат недействителен.
int QAudioFormat::bytesPerSample() const
Возвращает количество байтов, необходимых для представления одного образца в этом формате.
Возвращает 0, если формат недействителен.
QAudioFormat::ChannelConfig QAudioFormat::channelConfig() const
Возвращает текущую конфигурацию канала.
int QAudioFormat::channelCount() const
Возвращает текущее значение количества каналов.
См. также setChannelCount().
END_OF_DOCUMENT_MARKER ```int QAudioFormat::channelOffset(QAudioFormat::AudioChannelPosition channel) const
Возвращает позицию определённого аудиоканала внутри аудиокадра для заданного формата. Возвращает -1, если канала не существует для этого формата или конфигурация каналов неизвестна.
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 microseconds) const
Возвращает количество кадров, необходимых для представления microseconds в этом формате.
Обратите внимание, что может произойти некоторое округление, если microseconds не является точной долей sampleRate().
bool QAudioFormat::isValid() const
Возвращает true если все параметры допустимы.
float QAudioFormat::normalizedSampleValue(const void *sample) const
Нормализует значение sample до числа между -1 и 1. Метод зависит от QaudioFormat.
QAudioFormat::SampleFormat QAudioFormat::sampleFormat() const
Возвращает текущий формат образцов.
См. также setSampleFormat().
int QAudioFormat::sampleRate() const
Возвращает текущую частоту дискретизации в Герцах.
См. также setSampleRate().
void QAudioFormat::setChannelConfig(QAudioFormat::ChannelConfig config)
Устанавливает конфигурацию каналов на config.
Устанавливает конфигурацию каналов аудиоформата на одну из стандартных конфигураций аудиоканалов.
Примечание: это также изменит количество каналов.
См. также channelConfig().
void QAudioFormat::setChannelCount(int channels)
Устанавливает количество каналов на channels. Установка этого также устанавливает конфигурацию каналов на ChannelConfigUnknown.
См. также channelCount().
void QAudioFormat::setSampleFormat(QAudioFormat::SampleFormat format)
Устанавливает формат образцов на format.
См. также sampleFormat() и QAudioFormat::SampleFormat.
void QAudioFormat::setSampleRate(int samplerate)
Устанавливает частоту дискретизации на samplerate в Герцах.
См. также sampleRate().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qaudioformat.html