Spec-Zone.ru › Qt 5.13

Класс QAudioBuffer

Класс QAudioBuffer представляет собой набор аудиосэмплов с определенным форматом и частотой дискретизации. Подробнее...

Заголовок: #include <QAudioBuffer>
qmake: QT += multimedia
  • Список всех членов, включая унаследованные

Типы

класс StereoFrame
typedef S16S
typedef S16U
typedef S32F
typedef S8S
typedef S8U

Публичные функции

QAudioBuffer(int numFrames, const QAudioFormat &format, qint64 startTime = -1)
QAudioBuffer(const QByteArray &data, const QAudioFormat &format, qint64 startTime = -1)
QAudioBuffer(const QAudioBuffer &other)
QAudioBuffer()
QAudioBuffer & operator=(const QAudioBuffer &other)
~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

Подробное описание

Документация по типам членов

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(int numFrames, const QAudioFormat &format, qint64 startTime = -1)

Создаёт новый буфер аудиоданных с местом для numFrames кадров заданного format. Отдельные сэмплы будут инициализированы значениями по умолчанию для данного формата.

startTime (в микросекундах) указывает момент начала этого буфера в потоке. Если буфер не является частью потока, установите его в -1.

QAudioBuffer::QAudioBuffer(const QByteArray &data, const QAudioFormat &format, qint64 startTime = -1)

Создаёт новый буфер аудиоданных из предоставленных data в заданном format. Формат определит, как количество и размер сэмплов интерпретируются из data.

Если предоставленные data не являются целым кратным вычисленному размеру кадра, избыточные данные не будут использоваться.

Этот буфер аудиоданных скопирует содержимое data.

startTime (в микросекундах) указывает момент начала этого буфера в потоке. Если буфер не является частью потока, установите его в -1.

QAudioBuffer::QAudioBuffer(const QAudioBuffer &other)

Создаёт новый буфер аудиоданных из other. Обычно это будет семантика копирования с запаздыванием — копия будет сделана только тогда, когда это необходимо.

QAudioBuffer::QAudioBuffer()

Создаёт новый, пустой, недействительный буфер.

QAudioBuffer &QAudioBuffer::operator=(const QAudioBuffer &other)

Присваивает буфер other этому буферу.

QAudioBuffer::~QAudioBuffer()

Уничтожает этот буфер аудиоданных.

int QAudioBuffer::byteCount() const

Возвращает размер этого буфера в байтах.

const void *QAudioBuffer::constData() 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.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qaudiobuffer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API