En esta página

QtAudio Namespace

El espacio de nombres QtAudio contiene enums utilizados por las clases de audio. Más...

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

Tipos

enum Error { NoError, OpenError, IOError, UnderrunError, FatalError }
enum State { ActiveState, SuspendedState, StoppedState, IdleState }
enum VolumeScale { LinearVolumeScale, CubicVolumeScale, LogarithmicVolumeScale, DecibelVolumeScale }

Funciones

float convertVolume(float volume, QtAudio::VolumeScale from, QtAudio::VolumeScale to)

Descripción detallada

Documentación de tipos

enum QtAudio::Error

ConstanteValorDescripción
QtAudio::NoError0No se ha producido ningún error
QtAudio::OpenError1Se ha producido un error al abrir el dispositivo de audio
QtAudio::IOError2Se ha producido un error durante la lectura/escritura del dispositivo de audio. Esto puede ocurrir cuando, por ejemplo, se desconecta una interfaz de audio externa.
QtAudio::UnderrunError3Este valor ha sido obsoleto en Qt-6.11 y no se emite desde Qt. Observe QtAudio::State::IdleState en su lugar.. Los datos de audio no están siendo alimentados al dispositivo de audio a una velocidad suficientemente rápida.
QtAudio::FatalError4Se ha producido un error no recuperable, el dispositivo de audio no es utilizable en este momento.

enum QtAudio::State

ConstanteValorDescripción
QtAudio::ActiveState0Los datos de audio están siendo procesados, este estado se establece después de llamar a start() y mientras los datos de audio estén disponibles para ser procesados.
QtAudio::SuspendedState1El flujo de audio está en un estado suspendido. Se entra después de llamar a suspend() o cuando otro flujo toma el control del dispositivo de audio. En este último caso, una llamada a resume devolverá el control del dispositivo de audio a este flujo. Por lo general, esto sólo debería hacerse a petición del usuario.
QtAudio::StoppedState2El dispositivo de audio está cerrado y no está procesando ningún dato de audio
QtAudio::IdleState3Este estado indica que el sistema de audio está temporalmente inactivo debido a una condición de almacenamiento en búfer. Para QAudioSink, IdleState significa que no hay suficientes datos disponibles en QIODevice para leer. Para un QAudioSource, se entra en IdleState cuando el búfer en anillo que alimenta el QIODevice se llena. En ese caso, cualquier nuevo dato de audio que llegue de la interfaz de audio es descartado hasta que la aplicación lea del QIODevice, lo que libera espacio en el buffer.

enum QtAudio::VolumeScale

Este enum define las diferentes escalas de volumen de audio.

ConstanteValorDescripción
QtAudio::LinearVolumeScale0Escala lineal. 0.0 (0%) es silencio y 1.0 (100%) es volumen completo. Todas las clases de Qt Multimedia que tienen un volumen de audio utilizan una escala lineal.
QtAudio::CubicVolumeScale1Escala cúbica. 0.0 (0%) es silencio y 1.0 (100%) es volumen máximo.
QtAudio::LogarithmicVolumeScale2Escala logarítmica. 0.0 (0%) es silencio y 1.0 (100%) es volumen máximo. Los controles de volumen de la interfaz de usuario suelen utilizar una escala logarítmica.
QtAudio::DecibelVolumeScale3Escala logarítmica de decibelios (dB, amplitud). -200 es silencio y 0 es volumen máximo.

Véase también QtAudio::convertVolume().

Documentación de funciones

float QtAudio::convertVolume(float volume, QtAudio::VolumeScale from, QtAudio::VolumeScale to)

Convierte un audio volume from una escala de volumen to otra, y devuelve el resultado.

Dependiendo del contexto, se utilizan diferentes escalas para representar el volumen del audio. Todas las clases de Qt Multimedia que tienen un volumen de audio utilizan una escala lineal, la razón es que la sonoridad de un altavoz se controla modulando su voltaje en una escala lineal. El oído humano, en cambio, percibe el volumen de forma logarítmica. Por lo tanto, utilizar una escala logarítmica para los controles de volumen es adecuado en la mayoría de las aplicaciones. La escala de decibelios es logarítmica por naturaleza y se utiliza habitualmente para definir los niveles sonoros; suele emplearse para los controles de volumen de la interfaz de usuario en aplicaciones de audio profesionales. La escala cúbica es una aproximación computacionalmente barata de una escala logarítmica, proporciona más control sobre los niveles de volumen más bajos.

El siguiente ejemplo muestra cómo convertir el valor del volumen de un control deslizante antes de pasarlo a QMediaPlayer. Como resultado, el aumento percibido del volumen es el mismo cuando se aumenta el control deslizante del volumen de 20 a 30 que cuando se aumenta de 50 a 60:

void applyVolume(int volumeSliderValue)
{
    // volumeSliderValue is in the range [0..100]

    qreal linearVolume = QtAudio::convertVolume(volumeSliderValue / qreal(100.0),
                                                QtAudio::LogarithmicVolumeScale,
                                                QtAudio::LinearVolumeScale);

    player.setVolume(qRound(linearVolume * 100));
}

Véase también VolumeScale, QAudioSink::setVolume(), QAudioSource::setVolume(), y QSoundEffect::setVolume().

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