Sur cette page

QSoundEffect Class

La classe QSoundEffect permet de lire des effets sonores à faible latence. En savoir plus...

En-tête : #include <QSoundEffect>
CMake : find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake : QT += multimedia
En QML : SoundEffect
Hérite de : QObject

Types publics

enum Loop { Infinite }
enum Status { Null, Loading, Ready, Error }

Propriétés

Fonctions publiques

QSoundEffect(QObject *parent = nullptr)
QSoundEffect(const QAudioDevice &audioDevice, QObject *parent = nullptr)
virtual ~QSoundEffect() override
QAudioDevice audioDevice()
bool isLoaded() const
bool isMuted() const
bool isPlaying() const
int loopCount() const
int loopsRemaining() const
void setAudioDevice(const QAudioDevice &device)
void setLoopCount(int loopCount)
void setMuted(bool muted)
void setSource(const QUrl &url)
void setVolume(float volume)
QUrl source() const
QSoundEffect::Status status() const
float volume() const

Emplacements publics

void play()
void stop()

Signaux

Membres publics statiques

QStringList supportedMimeTypes()

Description détaillée

Cette classe vous permet de lire des fichiers audio non compressés (généralement des fichiers WAV) avec une latence généralement plus faible ; elle est adaptée aux sons de type « retour d’information » en réponse aux actions de l’utilisateur (par exemple, les sons d’un clavier virtuel, les retours positifs ou négatifs pour les boîtes de dialogue contextuelles, ou encore les sons de jeux). Si la faible latence n’est pas un critère essentiel, envisagez plutôt d’utiliser la classe ` QMediaPlayer `, car elle prend en charge une plus grande variété de formats multimédias et est moins gourmande en ressources.

Cet exemple montre comment lire un effet sonore en boucle, relativement discret :

QSoundEffect effect;
effect.setSource(QUrl::fromLocalFile("engine.wav"));
effect.setLoopCount(QSoundEffect::Infinite);
effect.setVolume(0.25f);
effect.play();

En règle générale, l’effet sonore doit être réutilisé, ce qui permet d’effectuer à l’avance l’analyse et la préparation, et de ne le déclencher qu’en cas de besoin. Cela contribue à réduire la latence de la lecture audio.

    MyGame()
        : m_explosion(this)
    {
        m_explosion.setSource(QUrl::fromLocalFile("explosion.wav"));
        m_explosion.setVolume(0.25f);

        // Set up click handling etc.
        connect(clickSource, &QPushButton::clicked, &m_explosion, &QSoundEffect::play);
    }
private:
    QSoundEffect m_explosion;

Comme QSoundEffect nécessite un peu plus de ressources pour obtenir une lecture à faible latence, la plateforme peut limiter le nombre d’effets sonores pouvant être lus simultanément.

Documentation sur les types de membres

enum QSoundEffect::Loop

ConstanteValeurDescription
QSoundEffect::Infinite-2Utilisé comme paramètre de la fonction ` setLoopCount()` pour créer une boucle infinie

enum QSoundEffect::Status

ConstanteValeurDescription
QSoundEffect::Null0Aucune source n'a été définie ou la source est nulle.
QSoundEffect::Loading1L'SoundEffect e tente de charger la source.
QSoundEffect::Ready2La source est chargée et prête à être lue.
QSoundEffect::Error3Une erreur s'est produite pendant l'opération, telle qu'un échec du chargement de la source.

Documentation des propriétés

audioDevice : QAudioDevice

Renvoie l'instance ` QAudioDevice `.

Fonctions d'accès :

QAudioDevice audioDevice()
void setAudioDevice(const QAudioDevice &device)

Signal de notification :

void audioDeviceChanged()

loops : int

Cette propriété indique le nombre de fois où le son sera lu. Une valeur de 0 ou 1 signifie que le son ne sera lu qu’une seule fois ; définissez-la sur SoundEffect.Infinite pour activer la lecture en boucle infinie.

La valeur peut être modifiée pendant la lecture de l'effet sonore ; dans ce cas, le nombre de boucles restantes sera mis à jour en fonction de la nouvelle valeur.

Fonctions d'accès :

int loopCount() const
void setLoopCount(int loopCount)

Signal de notification :

[read-only] loopsRemaining : int

Cette propriété indique le nombre de boucles restantes avant que l'effet sonore ne s'arrête de lui-même, ou « QSoundEffect::Infinite » si c'est ce qui a été défini dans loops.

Fonctions d'accès :

int loopsRemaining() const

Signal de notification :

muted : bool

Cette propriété permet de contrôler la désactivation du son. Une valeur de « true » désactivera le son de cet effet.

Fonctions d'accès :

bool isMuted() const
void setMuted(bool muted)

Signal de notification :

void mutedChanged()

[read-only] playing : bool

Cette propriété indique si l'effet sonore est en cours de lecture ou non.

Fonctions d'accès :

bool isPlaying() const

Signal de notification :

source : QUrl

Cette propriété contient l'URL du fichier audio à lire. Pour que l'SoundEffect e puisse tenter de charger la source, l'URL doit exister et l' e doit disposer d'un droit de lecture dans le répertoire spécifié.

Fonctions d'accès :

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

Signal de notification :

void sourceChanged()

[read-only] status : Status

Cette propriété indique l'état actuel de l'effet sonore à partir de l'énumération « QSoundEffect::Status ».

Fonctions d'accès :

QSoundEffect::Status status() const

Signal de notification :

void statusChanged()

volume : float

Cette propriété définit le volume de lecture de l'effet sonore, de 0,0 (silence) à 1,0 (volume maximal).

Fonctions d'accès :

float volume() const
void setVolume(float volume)

Signal de notification :

void volumeChanged()

Documentation des fonctions membres

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

Crée un objet `QSoundEffect` avec l'parent` indiquée.

[explicit] QSoundEffect::QSoundEffect(const QAudioDevice &audioDevice, QObject *parent = nullptr)

Crée un objet `QSoundEffect` avec les paramètres ` audioDevice ` et ` parent` indiqués.

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

Supprime cet effet sonore.

bool QSoundEffect::isLoaded() const

Indique si le chargement de l'effet sonore est terminé à l'aide de la fonction ` source()`.

bool QSoundEffect::isMuted() const

Indique si cet effet sonore est désactivé

Remarque : fonctiongetter pour la propriété « muted ».

bool QSoundEffect::isPlaying() const

Renvoie « true » si l'effet sonore est en cours de lecture, ou « false » dans le cas contraire

Remarque : fonctiongetter pour la propriété playing.

[signal] void QSoundEffect::loadedChanged()

Le signal « loadedChanged » est émis lorsque l'état de chargement a changé.

int QSoundEffect::loopCount() const

Renvoie le nombre total de fois où cet effet sonore sera lu avant de s'arrêter.

Consultez la méthode loopsRemaining() pour connaître le nombre de boucles restantes.

Remarque : fonctiongetter pour la propriété loops.

Voir également setLoopCount().

[signal] void QSoundEffect::loopCountChanged()

Le signal « loopCountChanged » est émis lorsque le nombre initial de boucles a changé.

Remarque : signalde notification pour la propriété loops.

[signal] void QSoundEffect::loopsRemainingChanged()

Le signal « loopsRemainingChanged » est émis lorsque le nombre de boucles restantes a changé.

Remarque : signalde notification pour la propriété « loopsRemaining ».

[signal] void QSoundEffect::mutedChanged()

Le signal « mutedChanged » est émis lorsque l'état de sourdine a changé.

Remarque : signalde notification pour la propriété « muted ».

[slot] void QSoundEffect::play()

Lance la lecture de l'effet sonore et le fait passer en boucle autant de fois que le spécifie la propriété « loops ».

[signal] void QSoundEffect::playingChanged()

Le signal « playingChanged » est émis lorsque la propriété « playing » a changé.

Remarque : signalNotifier pour la propriété « playing ».

void QSoundEffect::setLoopCount(int loopCount)

Définissez le nombre total de lectures de cet effet sonore sur loopCount.

Si vous définissez le nombre de boucles sur 0 ou 1, l'effet sonore ne sera lu qu'une seule fois ; passez la valeur « QSoundEffect::Infinite » pour le répéter indéfiniment. Le nombre de boucles peut être modifié pendant la lecture de l'effet sonore ; dans ce cas, le nombre de boucles restantes sera mis à jour en fonction de la nouvelle valeur « loopCount ».

Remarque : fonctionde définition de la propriété loops.

Voir également loopCount() et loopsRemaining().

void QSoundEffect::setMuted(bool muted)

Détermine s'il faut couper le son de cet effet sonore.

Si la valeur de « muted » est « true », la lecture sera mise en sourdine (silencieuse) ; dans le cas contraire, la lecture s'effectuera avec la valeur « volume » () actuellement spécifiée.

Remarque : fonctionde définition de la propriété muted.

Voir également isMuted().

void QSoundEffect::setSource(const QUrl &url)

Définissez l'URL actuelle à lire sur url.

Remarque : fonctionde définition de la propriété source.

Voir également source().

void QSoundEffect::setVolume(float volume)

Règle le volume des effets sonores sur volume.

Le volume est modulé de manière linéaire entre 0.0 (silence) et 1.0 (volume maximal). Les valeurs situées en dehors de cette plage seront limitées.

Le volume par défaut est 1.0.

Les commandes de volume de l’interface utilisateur doivent généralement être mises à l’échelle de manière non linéaire. Par exemple, l’utilisation d’une échelle logarithmique produira des variations linéaires du niveau sonore perçu, ce à quoi un utilisateur s’attend normalement de la part d’une commande de volume. Voir QtAudio::convertVolume() pour plus de détails.

Remarque : fonctionde définition pour la propriété volume.

Voir également volume().

QUrl QSoundEffect::source() const

Renvoie l'URL de la source en cours de lecture

Remarque : fonctiongetter pour la propriété source.

Voir aussi setSource().

[signal] void QSoundEffect::sourceChanged()

Le signal « sourceChanged » est émis lorsque la source a été modifiée.

Remarque : signalde notification pour la propriété « source ».

QSoundEffect::Status QSoundEffect::status() const

Renvoie l'état actuel de cet effet sonore.

Remarque : fonctiongetter pour la propriété status.

[signal] void QSoundEffect::statusChanged()

Le signal « statusChanged » est émis lorsque la propriété « status » a changé.

Remarque : signalNotifier pour la propriété « status ».

[slot] void QSoundEffect::stop()

Arrêter la lecture en cours.

[static] QStringList QSoundEffect::supportedMimeTypes()

Renvoie une liste des types MIME pris en charge par cette plateforme.

float QSoundEffect::volume() const

Renvoie le volume actuel de cet effet sonore, compris entre 0,0 (silence) et 1,0 (volume maximal).

Remarque : fonctiongetter pour la propriété volume.

Voir aussi : `setVolume()`

[signal] void QSoundEffect::volumeChanged()

Le signal « volumeChanged » est émis lorsque le volume a changé.

Remarque : signalde notification pour la propriété « volume ».

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