Класс 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 T * | constData() const |
| const void * | data() const |
| void * | data() |
| const T * | data() const |
| T * | 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. В целом, это будет иметь семантику копирования при записи — копия будет создана только в случае необходимости.
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 T *QAudioBuffer::constData() const
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
const T *QAudioBuffer::data() const
T *QAudioBuffer::data()
qint64 QAudioBuffer::duration() const
Возвращает длительность аудио в этом буфере в микросекундах.
Это зависит от формата() и 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.9/qaudiobuffer.html