Spec-Zone.ru › Qt 5.11

Класс 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)

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

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

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

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

QAudioBuffer::QAudioBuffer(int numFrames, const QAudioFormat &format, qint64 startTime = -1)

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

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

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

Это зависит от формата и 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/archives/qt-5.11/qaudiobuffer.html

Spec-Zone.ru

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