Sur cette page

QtAudio Namespace

L'espace de noms QtAudio contient des enums utilisés par les classes audio. Plus d'informations...

En-tête : #include <QtAudio>
CMake : find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake : QT += multimedia

Types

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

Fonctions

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

Description détaillée

Documentation des types

enum QtAudio::Error

ConstanteValeurDescription de l'erreur
QtAudio::NoError0Aucune erreur n'est survenue
QtAudio::OpenError1Une erreur s'est produite lors de l'ouverture du périphérique audio
QtAudio::IOError2Une erreur s'est produite lors de la lecture/écriture du périphérique audio. Cela peut se produire lorsque, par exemple, une interface audio externe est déconnectée.
QtAudio::UnderrunError3Cette valeur a été dépréciée dans Qt-6.11 et n'est pas émise par Qt. Observez QtAudio::State::IdleState au lieu de... Les données audio ne sont pas transmises au périphérique audio à un rythme suffisamment rapide.
QtAudio::FatalError4Une erreur irrécupérable s'est produite, le périphérique audio n'est pas utilisable pour le moment.

enum QtAudio::State

ConstanteValeurDescription de l'état
QtAudio::ActiveState0Les données audio sont en cours de traitement. Cet état est défini après l'appel de start() et tant que les données audio sont disponibles pour être traitées.
QtAudio::SuspendedState1Le flux audio est dans un état suspendu. Entré après l'appel de suspend() ou lorsqu'un autre flux prend le contrôle du périphérique audio. Dans ce dernier cas, un appel à resume redonnera le contrôle du périphérique audio à ce flux. En général, cela ne doit se faire qu'à la demande de l'utilisateur.
QtAudio::StoppedState2Le périphérique audio est fermé et ne traite aucune donnée audio
QtAudio::IdleState3Cet état indique que le système audio est temporairement inactif en raison d'une condition de mise en mémoire tampon. Pour un QAudioSink, IdleState signifie qu'il n'y a pas assez de données disponibles sur le QIODevice pour les lire. Pour un QAudioSource, l'état d'inactivité est activé lorsque la mémoire tampon circulaire qui alimente le QIODevice est pleine. Dans ce cas, toute nouvelle donnée audio arrivant de l'interface audio est rejetée jusqu'à ce que l'application lise sur QIODevice, ce qui libère de l'espace dans la mémoire tampon.

enum QtAudio::VolumeScale

Cette énumération définit les différentes échelles de volume audio.

ConstanteValeurDescription de l'échelle
QtAudio::LinearVolumeScale0Échelle linéaire. 0.0 (0 %) correspond au silence et 1.0 (100 %) correspond au volume maximum. Toutes les classes Qt Multimedia qui ont un volume audio utilisent une échelle linéaire.
QtAudio::CubicVolumeScale1Échelle cubique. 0.0 (0 %) correspond au silence et 1.0 (100 %) correspond au volume maximum.
QtAudio::LogarithmicVolumeScale2Échelle logarithmique. 0.0 (0 %) correspond au silence et 1.0 (100 %) correspond au volume maximum. Les commandes de volume des interfaces utilisateur doivent généralement utiliser une échelle logarithmique.
QtAudio::DecibelVolumeScale3Échelle logarithmique des décibels (dB, amplitude). -200 correspond au silence et 0 au volume maximum.

Voir aussi QtAudio::convertVolume().

Documentation des fonctions

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

Convertit un fichier audio volume from une échelle de volume to une autre, et renvoie le résultat.

Selon le contexte, différentes échelles sont utilisées pour représenter le volume audio. Toutes les classes Qt Multimedia qui ont un volume audio utilisent une échelle linéaire, car l'intensité sonore d'un haut-parleur est contrôlée en modulant sa tension sur une échelle linéaire. L'oreille humaine, quant à elle, perçoit l'intensité sonore de manière logarithmique. L'utilisation d'une échelle logarithmique pour les commandes de volume est donc appropriée dans la plupart des applications. L'échelle des décibels est logarithmique par nature et est couramment utilisée pour définir les niveaux sonores. Elle est généralement utilisée pour les commandes de volume de l'interface utilisateur dans les applications audio professionnelles. L'échelle cubique est une approximation peu coûteuse d'une échelle logarithmique et permet de mieux contrôler les niveaux de volume inférieurs.

L'exemple suivant montre comment convertir la valeur du volume d'un curseur avant de la transmettre à QMediaPlayer. Par conséquent, l'augmentation perçue du volume est la même lorsque l'on augmente le curseur de 20 à 30 que lorsqu'on l'augmente de 50 à 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));
}

Voir également VolumeScale, QAudioSink::setVolume(), QAudioSource::setVolume() et 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.