Spec-Zone.ru › Qt 5.14

Класс 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 кадров заданного формата. Отдельные сэмплы будут инициализированы значениями по умолчанию для формата.

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

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

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

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

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

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

Возвращает продолжительность аудио в этом буфере в микросекундах.

Это зависит от формата() и 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.14/qaudiobuffer.html

Spec-Zone.ru

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