Класс QAudioBuffer
Класс QAudioBuffer представляет собой набор аудиосэмплов с определённым форматом и частотой дискретизации. Подробнее...
| Заголовок: | #include <QAudioBuffer> |
| qmake: | QT += multimedia |
Открытые типы
| класс | StereoFrame |
| typedef | S16S |
| typedef | S16U |
| typedef | S32F |
| typedef | S8S |
| typedef | S8U |
Открытые функции
| QAudioBuffer() | |
| QAudioBuffer(const QAudioBuffer &other) | |
| QAudioBuffer(const QByteArray &data, const QAudioFormat &format, qint64 startTime = -1) | |
| QAudioBuffer(int numFrames, const QAudioFormat &format, qint64 startTime = -1) | |
| ~QAudioBuffer() | |
| int | byteCount() const |
| const void * | constData() const |
| const void * | data() const |
| void * | data() |
| qint64 | duration() const |
| QAudioFormat | format() const |
| int | frameCount() const |
| bool | isValid() const |
| int | sampleCount() const |
| qint64 | startTime() const |
| QAudioBuffer & | operator=(const QAudioBuffer &other) |
Подробное описание
Класс QAudioBuffer представляет собой набор аудиосэмплов с определённым форматом и частотой дискретизации.
Документация по типам членов
typedef QAudioBuffer::S16S
Это предопределённая специализация для аудиосэмпла стереоформата с 16-битным значением со знаком. Каждый канал — это signed short.
typedef QAudioBuffer::S16U
Это предопределённая специализация для аудиосэмпла стереоформата с 16-битным беззнаковым значением. Каждый канал — это unsigned short.
typedef QAudioBuffer::S32F
Это предопределённая специализация для аудиосэмпла 32-битного с плавающей запятой. Каждый канал — это float.
typedef QAudioBuffer::S8S
Это предопределённая специализация для аудиосэмпла стереоформата с 8-битным значением со знаком. Каждый канал — это signed char.
typedef QAudioBuffer::S8U
Это предопределённая специализация для аудиосэмпла стереоформата с 8-битным беззнаковым значением. Каждый канал — это unsigned char.
Документация по функциям-членам
QAudioBuffer::QAudioBuffer()
Создаёт новый пустой, недействительный буфер.
QAudioBuffer::QAudioBuffer(const QAudioBuffer &other)
Создаёт новый аудиобуфер из other. В общем случае, это копирование с кэшированием (copy-on-write) — копия создаётся только тогда, когда это необходимо.
QAudioBuffer::QAudioBuffer(const QByteArray &data, const QAudioFormat &format, qint64 startTime = -1)
Создаёт новый аудиобуфер из предоставленных данных data в заданном формате format. Формат определяет, как интерпретируются количество и размер сэмплов из data.
Если предоставленные data не являются целым кратным рассчитанного размера кадра, избыточные данные не будут использованы.
Этот аудиобуфер скопирует содержимое data.
startTime (в микросекундах) указывает, когда этот буфер начинается в потоке. Если этот буфер не является частью потока, установите его в -1.
QAudioBuffer::QAudioBuffer(int numFrames, const QAudioFormat &format, qint64 startTime = -1)
Создаёт новый аудиобуфер с местом для numFrames кадров заданного формата format. Отдельные сэмплы будут инициализированы по умолчанию для формата.
startTime (в микросекундах) указывает, когда этот буфер начинается в потоке. Если этот буфер не является частью потока, установите его в -1.
QAudioBuffer::~QAudioBuffer()
Уничтожает этот аудиобуфер.
int QAudioBuffer::byteCount() const
Возвращает размер этого буфера в байтах.
const void *QAudioBuffer::constData() const
Возвращает указатель на данные этого буфера. Вы можете только читать их.
Этот метод предпочтительнее const версии data(), чтобы предотвратить ненужное копирование.
Также существует шаблонная версия этой функции constData(), которая позволяет получить указатель на данные определенного типа для чтения. Обратите внимание, что проверка формата аудиобуфера не выполняется — это просто удобная функция.
// With a 16bit sample buffer: const quint16 *data = buffer->constData<quint16>();
const void *QAudioBuffer::data() const
Возвращает указатель на данные этого буфера. Вы можете только читать их.
Вы должны использовать функцию constData() вместо этой, чтобы предотвратить случайное глубокое копирование.
Также существует шаблонная версия этой функции data(), которая позволяет получить указатель на данные определенного типа для чтения. Обратите внимание, что проверка формата аудиобуфера не выполняется — это просто удобная функция.
// With a 16bit sample const buffer: const quint16 *data = buffer->data<quint16>();
void *QAudioBuffer::data()
Возвращает указатель на данные этого буфера. Вы можете изменять данные через возвращенный указатель.
Так как QAudioBuffers могут совместно использовать фактические данные сэмплов, вызов этой функции приведет к созданию глубокой копии, если какие-либо другие буферы используют сэмплы. Вы должны избегать вызова этой функции, если вам не нужно действительно изменять данные.
Этот указатель будет оставаться действительным до тех пор, пока не будет отсоединено базовое хранилище. В частности, если вы получаете указатель, а затем копируете этот аудиобуфер, изменение данных через этот указатель может изменить оба экземпляра буфера. Вызов data() любого экземпляра снова приведет к созданию глубокой копии, что может сделать недействительными ранее возвращенные указатели этой функции.
Также существует шаблонная версия data(), которая позволяет получить указатель на данные определенного типа. Обратите внимание, что проверка формата аудиобуфера не выполняется — это просто удобная функция.
// With a 16bit sample buffer: quint16 *data = buffer->data<quint16>(); // May cause deep copy
qint64 QAudioBuffer::duration() const
Возвращает длительность аудио в этом буфере в микросекундах.
Это зависит от format() и frameCount().
QAudioFormat QAudioBuffer::format() const
Возвращает формат этого буфера.
Некоторые свойства этого формата влияют на то, как вычисляются duration() или byteCount() из frameCount().
int QAudioBuffer::frameCount() const
Возвращает количество полных аудиокадров в этом буфере.
Аудиокадр — это перегруппированный набор одного сэмпла на канал для одного и того же момента во времени.
bool QAudioBuffer::isValid() const
Возвращает true, если это допустимый буфер. Допустимый буфер содержит более нуля кадров и имеет допустимый формат.
int QAudioBuffer::sampleCount() const
Возвращает количество сэмплов в этом буфере.
Если формат этого буфера имеет несколько каналов, то это количество включает все каналы. Это означает, что стерео буфер с 1000 сэмплами в общей сложности будет содержать 500 левых сэмплов и 500 правых сэмплов (перемежаемые), и эта функция вернет 1000.
См. такжеframeCount().
qint64 QAudioBuffer::startTime() const
Возвращает время в потоке, в котором начинается этот буфер (в микросекундах).
Если этот буфер не является частью потока, возвращается -1.
QAudioBuffer &QAudioBuffer::operator=(const QAudioBuffer &other)
Присваивает буфер other этому буферу.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qaudiobuffer.html