En esta página

QAudioBuffer Class

La clase QAudioBuffer representa una colección de muestras de audio con un formato y frecuencia de muestreo específicos. Más...

Cabecera: #include <QAudioBuffer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia

Tipos Públicos

Funciones Públicas

QAudioBuffer()
QAudioBuffer(const QByteArray &data, const QAudioFormat &format, qint64 startTime = -1)
QAudioBuffer(int numFrames, const QAudioFormat &format, qint64 startTime = -1)
QAudioBuffer(const QAudioBuffer &other)
QAudioBuffer(QAudioBuffer &&other)
~QAudioBuffer()
qsizetype byteCount() const
const T *constData() const
T *data()
const T *data() const
void detach()
qint64 duration() const
QAudioFormat format() const
qsizetype frameCount() const
bool isValid() const
qsizetype sampleCount() const
qint64 startTime() const
void swap(QAudioBuffer &other)
QAudioBuffer &operator=(QAudioBuffer &&other)
QAudioBuffer &operator=(const QAudioBuffer &other)

Descripción detallada

QAudioBuffer es utilizado por la clase QAudioDecoder para entregar los datos de audio decodificados a la aplicación. Un buffer de audio contiene datos en un determinado QAudioFormat que pueden ser consultados utilizando format(). También está etiquetado con información de temporización y duración.

Para acceder a los datos almacenados dentro del búfer, utiliza los métodos data() o constData().

Los búferes de audio son explícitamente compartidos, en la mayoría de los casos, debe llamar a detach() antes de modificar los datos.

Documentación de los tipos de miembros

QAudioBuffer::F32M

Se trata de una especialización predefinida para una muestra mono flotante de 32 bits.

QAudioBuffer::F32S

Se trata de una especialización predefinida para una muestra estéreo flotante de 32 bits.

QAudioBuffer::S16M

Se trata de una especialización predefinida para una muestra mono de 16 bits con signo. i

QAudioBuffer::S16S

Se trata de una especialización predefinida para una muestra estéreo de 16 bits con signo. Cada canal es un corto con signo.

QAudioBuffer::S32M

Se trata de una especialización predefinida para una muestra mono de 32 bits con signo.

QAudioBuffer::S32S

Se trata de una especialización predefinida para una muestra estéreo de 32 bits con signo.

QAudioBuffer::U8M

Se trata de una especialización predefinida para una muestra mono de 8 bits sin signo.

QAudioBuffer::U8S

Se trata de una especialización predifinida para una muestra estéreo de 8 bits sin signo.

Documentación de la función miembro

[noexcept] QAudioBuffer::QAudioBuffer()

Crea un nuevo búfer vacío no válido.

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

Crea un nuevo búfer de audio a partir del data suministrado , en el format dado. El formato determinará cómo se interpretan el número y el tamaño de las muestras desde data.

Si el data suministrado no es un múltiplo entero del tamaño de fotograma calculado, no se utilizarán los datos sobrantes.

Este búfer de audio copiará el contenido de data.

startTime (en microsegundos) indica cuándo comienza este búfer en el flujo. Si este búfer no forma parte de un flujo, ajústalo a -1.

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

Crea un nuevo búfer de audio con espacio para numFrames fotogramas del formato format. Las muestras individuales se inicializarán al valor predeterminado para el formato.

startTime (en microsegundos) indica cuándo comienza este búfer en el flujo. Si este búfer no forma parte de un flujo, establézcalo en -1.

[noexcept] QAudioBuffer::QAudioBuffer(const QAudioBuffer &other)

Crea un nuevo búfer de audio a partir de other. Los búferes de audio se comparten explícitamente, debes llamar a detach() en el búfer para hacer una copia que luego puede ser modificada.

[constexpr noexcept] QAudioBuffer::QAudioBuffer(QAudioBuffer &&other)

Construye un QAudioBuffer pasando de other.

[noexcept] QAudioBuffer::~QAudioBuffer()

Destruye este búfer de audio.

[noexcept] qsizetype QAudioBuffer::byteCount() const

Devuelve el tamaño de este búfer, en bytes.

template <typename T> const T *QAudioBuffer::constData() const

Devuelve un puntero a los datos de este búfer. Sólo se puede leer.

Este método es preferible a la versión const de data() para evitar copias innecesarias.

Ten en cuenta que no se comprueba el formato del búfer de audio - se trata simplemente de una función de conveniencia.

// With a 16bit sample buffer:
const quint16 *data = buffer->constData<quint16>();

template <typename T> T *QAudioBuffer::data()

Devuelve un puntero a los datos de este búfer. Puede modificar los datos a través del puntero devuelto.

Dado que los objetos QAudioBuffer son explícitamente compartidos, normalmente deberías llamar a detach() antes de modificar los datos a través de esta función.

Tenga en cuenta que no se comprueba el formato del búfer de audio - se trata simplemente de una función de conveniencia.

// With a 16bit sample buffer:
quint16 *data = buffer->data<quint16>(); // May cause deep copy

template <typename T> const T *QAudioBuffer::data() const

Devuelve un puntero a los datos de este búfer. Sólo se puede leer.

Deberías usar la función constData() en lugar de esta para prevenir copias profundas accidentales.

Tenga en cuenta que no se comprueba el formato del búfer de audio - se trata simplemente de una función de conveniencia.

// With a 16bit sample const buffer:
const quint16 *data = buffer->data<quint16>();

void QAudioBuffer::detach()

Desvincula este búfer de audio de otras copias que puedan compartir datos con él.

[noexcept] qint64 QAudioBuffer::duration() const

Devuelve la duración del audio en este buffer, en microsegundos.

Depende de format(), y de frameCount().

[noexcept] QAudioFormat QAudioBuffer::format() const

Devuelve el format de este búfer.

Varias propiedades de este formato influyen en cómo se calcula duration() o byteCount() a partir de frameCount().

[noexcept] qsizetype QAudioBuffer::frameCount() const

Devuelve el número de fotogramas de audio completos en este búfer.

Un fotograma de audio es un conjunto intercalado de una muestra por canal para el mismo instante de tiempo.

[noexcept] bool QAudioBuffer::isValid() const

Devuelve true si se trata de un búfer válido. Un búfer válido tiene más de cero fotogramas y un formato válido.

[noexcept] qsizetype QAudioBuffer::sampleCount() const

Devuelve el número de muestras en este búfer.

Si el formato de este buffer tiene múltiples canales, entonces este conteo incluye todos los canales. Esto significa que un buffer estéreo con 1000 muestras en total tendrá 500 muestras izquierdas y 500 muestras derechas (intercaladas), y esta función devolverá 1000.

Véase también frameCount().

[noexcept] qint64 QAudioBuffer::startTime() const

Devuelve el tiempo en un flujo en el que comienza este búfer (en microsegundos).

Si este búfer no forma parte de un flujo, devolverá -1.

[noexcept] void QAudioBuffer::swap(QAudioBuffer &other)

Intercambia el búfer de audio con other.

[noexcept] QAudioBuffer &QAudioBuffer::operator=(QAudioBuffer &&other)

Mueve other en este QAudioBuffer.

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

Asigna el búfer other a esto.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.