Класс 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)
Создает новый аудиобуфер из предоставленных данных, в заданном формате. Формат определит, как количество и размеры сэмплов интерпретируются из данных.
Если предоставленные данные не являются целым числом кратным рассчитанному размеру кадра, избыточные данные не будут использоваться.
Этот аудиобуфер скопирует содержимое данных.
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 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
Возвращает длительность аудио в этом буфере в микросекундах.
Это зависит от /l формата() и 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.6/qaudiobuffer.html