En esta página

QAudioDecoder Class

La clase QAudioDecoder implementa la decodificación de audio. Más...

Cabecera: #include <QAudioDecoder>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
Hereda: QObject
Estado: Preliminar

Esta clase está en desarrollo y está sujeta a cambios.

Tipos públicos

enum Error { NoError, ResourceError, FormatError, AccessDeniedError, NotSupportedError }

Propiedades

Funciones públicas

QAudioDecoder(QObject *parent = nullptr)
virtual ~QAudioDecoder() override
QAudioFormat audioFormat() const
bool bufferAvailable() const
qint64 duration() const
QAudioDecoder::Error error() const
QString errorString() const
bool isDecoding() const
bool isSupported() const
qint64 position() const
QAudioBuffer read() const
void setAudioFormat(const QAudioFormat &format)
void setSource(const QUrl &fileName)
void setSourceDevice(QIODevice *device)
QUrl source() const
QIODevice *sourceDevice() const

Ranuras públicas

void start()
void stop()

Señales

void bufferAvailableChanged(bool available)
void bufferReady()
void durationChanged(qint64 duration)
void error(QAudioDecoder::Error error)
void finished()
void formatChanged(const QAudioFormat &format)
void isDecodingChanged(bool)
void positionChanged(qint64 position)
void sourceChanged()

Descripción Detallada

La clase QAudioDecoder es una clase de alto nivel para decodificar archivos multimedia de audio. Es similar a la clase QMediaPlayer excepto que el audio se proporciona de vuelta a través de esta API en lugar de enrutarse directamente al hardware de audio.

Véase también QAudioBuffer.

Documentación de los tipos de miembros

enum QAudioDecoder::Error

Define una condición de error del reproductor multimedia.

ConstanteValorDescripción
QAudioDecoder::NoError0No se ha producido ningún error.
QAudioDecoder::ResourceError1No se ha podido resolver un recurso multimedia.
QAudioDecoder::FormatError2No se admite el formato de un recurso multimedia.
QAudioDecoder::AccessDeniedError3No existen los permisos adecuados para reproducir un recurso multimedia.
QAudioDecoder::NotSupportedError4QAudioDecoder no es compatible con esta plataforma

Documentación de propiedades

[read-only] bufferAvailable : bool

Esta propiedad indica si hay un búfer de audio decodificado disponible.

Funciones de acceso:

bool bufferAvailable() const

Señal del notificador:

void bufferAvailableChanged(bool available)

[read-only] error : QString

Devuelve una descripción legible del error actual, o una cadena vacía si no hay error.

Funciones de acceso:

QString errorString() const

[read-only] isDecoding : bool

true si el descodificador está funcionando y descodificando datos de audio.

Funciones de acceso:

bool isDecoding() const

Señal de aviso:

void isDecodingChanged(bool)

source : QUrl

Esta propiedad contiene el nombre de archivo activo que está siendo decodificado por el objeto decodificador.

Funciones de acceso:

QUrl source() const
void setSource(const QUrl &fileName)

Señal del notificador:

void sourceChanged()

Documentación de funciones miembro

[explicit] QAudioDecoder::QAudioDecoder(QObject *parent = nullptr)

Construye una instancia de QAudioDecoder con parent.

[override virtual noexcept] QAudioDecoder::~QAudioDecoder()

Destruye el objeto decodificador de audio.

QAudioFormat QAudioDecoder::audioFormat() const

Devuelve el formato de audio al que está configurado el decodificador.

Nota: Puede ser diferente del formato de las muestras decodificadas, si el formato de audio se estableció en uno no válido.

Véase también setAudioFormat() y formatChanged().

bool QAudioDecoder::bufferAvailable() const

Devuelve true si hay un buffer disponible para ser leído, y false en caso contrario. Si no hay ningún búfer disponible, la llamada a la función read() devolverá un búfer no válido.

Nota: Función Getter para la propiedad bufferAvailable.

[signal] void QAudioDecoder::bufferAvailableChanged(bool available)

Señala la disponibilidad (si available es verdadero) de un nuevo búfer.

Si available es falso, no hay buffers disponibles.

Nota: Señal notificadora para la propiedad bufferAvailable.

Véase también bufferAvailable() y bufferReady().

[signal] void QAudioDecoder::bufferReady()

Señala que un nuevo búfer de audio decodificado está disponible para ser leído.

Véase también read() y bufferAvailable().

qint64 QAudioDecoder::duration() const

Devuelve la duración total (en milisegundos) del flujo de audio o -1 si no está disponible.

[signal] void QAudioDecoder::durationChanged(qint64 duration)

Señala que la dirección duration estimada de los datos descodificados ha cambiado.

Véase también positionChanged().

QAudioDecoder::Error QAudioDecoder::error() const

Devuelve el estado de error actual de QAudioDecoder.

[signal] void QAudioDecoder::error(QAudioDecoder::Error error)

Señala que se ha producido una condición error.

Nota: Esta señal está sobrecargada. Para conectarse a esta señal:

// Connect using qOverload:
connect(audioDecoder, qOverload(&QAudioDecoder::error),
        receiver, &ReceiverClass::slot);

// Or using a lambda:
connect(audioDecoder, qOverload(&QAudioDecoder::error),
        this, [](QAudioDecoder::Error error) { /* handle error */ });
Para más ejemplos y enfoques, véase conectarse a señales sobrecargadas.

Véase también errorString().

[signal] void QAudioDecoder::finished()

Señala que la descodificación ha finalizado correctamente. Si la descodificación falla, se emite una señal de error en su lugar.

Véase también start(), stop() y error().

[signal] void QAudioDecoder::formatChanged(const QAudioFormat &format)

Señala que el formato de audio actual del descodificador ha cambiado a format.

Véase también audioFormat() y setAudioFormat().

bool QAudioDecoder::isSupported() const

Devuelve true si la decodificación de audio está soportada en esta plataforma.

qint64 QAudioDecoder::position() const

Devuelve la posición (en milisegundos) del último búfer leído del decodificador o -1 si no se ha leído ningún búfer.

[signal] void QAudioDecoder::positionChanged(qint64 position)

Señala que la dirección position actual del descodificador ha cambiado.

Véase también durationChanged().

QAudioBuffer QAudioDecoder::read() const

Lee un búfer del descodificador, si hay alguno disponible. Devuelve un búfer no válido si no hay búferes decodificados disponibles, o en caso de fallo. En ambos casos esta función no se bloqueará.

Deberías responder a la señal bufferReady() o comprobar la función bufferAvailable() antes de llamar a read() para asegurarte de que obtienes datos útiles.

void QAudioDecoder::setAudioFormat(const QAudioFormat &format)

Establezca el formato de audio deseado para las muestras descodificadas en format.

Esta propiedad sólo puede establecerse mientras el decodificador está parado. Si se establece en otro momento, se ignorará.

Si el decodificador no admite este formato, error() se establecerá en FormatError.

Si no se especifica un formato, se utilizará el formato del propio audio decodificado. De lo contrario, se aplicará alguna conversión de formato.

Si desea restablecer el formato descodificado al del archivo de audio original, puede especificar un format no válido.

Advertencia: Establecer un formato de audio deseado aún no está soportado en el backend de Android. Sí funciona con el backend FFMPEG por defecto.

Véase también audioFormat().

void QAudioDecoder::setSource(const QUrl &fileName)

Establece el nombre del archivo de audio actual en fileName.

Cuando se establece esta propiedad, se detiene cualquier decodificación en curso y se descartan los búferes de audio.

Sólo se puede especificar un nombre de archivo fuente o una fuente QIODevice. Si se define uno, se desactiva el otro.

Nota: Función Setter para la propiedad source.

Véase también source().

void QAudioDecoder::setSourceDevice(QIODevice *device)

Establece el audio actual QIODevice a device.

Cuando se establece esta propiedad, se detiene cualquier decodificación en curso y se descartan los búferes de audio.

Sólo se puede especificar un nombre de archivo fuente o una fuente QIODevice. Si se define uno, se desactiva el otro.

Véase también sourceDevice().

QUrl QAudioDecoder::source() const

Devuelve el nombre del archivo actual a descodificar. Si se ha llamado a setSourceDevice, estará vacío.

Nota: Función Getter para la propiedad source.

Véase también setSource().

[signal] void QAudioDecoder::sourceChanged()

Señala que la fuente de corriente del decodificador ha cambiado.

Nota: Señal notificadora de la propiedad source.

Véase también source() y sourceDevice().

QIODevice *QAudioDecoder::sourceDevice() const

Devuelve la fuente actual QIODevice, si se estableció una. Si se llamó a setSource(), será un nullptr.

Véase también setSourceDevice().

[slot] void QAudioDecoder::start()

Inicia la decodificación del recurso de audio.

A medida que se decodifican los datos, la señal bufferReady() se emitirá cuando se hayan decodificado suficientes datos. La llamada a read() devolverá entonces un búfer de audio sin bloquearse.

Si se llama a read() antes de que el búfer esté listo, se devolverá un búfer no válido, también sin bloqueo.

Véase también read().

[slot] void QAudioDecoder::stop()

Detiene la decodificación de audio. Si vuelve a llamar a start(), se reanudará la descodificación desde el principio.

© 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.