Sur cette page

QSoundEffect Class

La classe QSoundEffect permet de jouer des effets sonores à faible latence. Plus d'informations...

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éritages : 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 convient pour les sons de type "feedback" en réponse aux actions de l'utilisateur (par exemple, les sons du clavier virtuel, le feedback positif ou négatif pour les fenêtres de dialogue, ou les sons de jeu). Si une faible latence n'est pas importante, il est préférable d'utiliser la classe QMediaPlayer, qui prend en charge une plus grande variété de formats de médias et est moins gourmande en ressources.

Cet exemple montre comment un effet sonore en boucle, plutôt silencieux, peut être joué :

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

Généralement, l'effet sonore doit être réutilisé, ce qui permet d'effectuer à l'avance toutes les opérations d'analyse et de préparation, et de ne le déclencher qu'en cas de besoin. Cela permet de 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;

Étant donné que QSoundEffect nécessite un peu plus de ressources pour obtenir une lecture à faible latence, la plate-forme peut limiter le nombre d'effets sonores joués simultanément.

Documentation sur les types de membres

enum QSoundEffect::Loop

ConstanteValeurDescription
QSoundEffect::Infinite-2Utilisée comme paramètre de setLoopCount() pour les boucles infinies.

enum QSoundEffect::Status

ConstanteValeurDescription de la source
QSoundEffect::Null0Aucune source n'a été définie ou la source est nulle.
QSoundEffect::Loading1Le site SoundEffect essaie 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 que l'échec du chargement de la source.

Documentation sur les propriétés

audioDevice : QAudioDevice

Renvoie l'instance QAudioDevice.

Fonctions d'accès :

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

Signal du notificateur :

void audioDeviceChanged()

loops : int

Cette propriété indique le nombre de fois que le son est joué. Une valeur de 0 ou 1 signifie que le son ne sera joué qu'une seule fois ; la valeur SoundEffect.Infinite permet d'activer une boucle infinie.

La valeur peut être modifiée pendant que l'effet sonore est joué, auquel cas les boucles restantes seront mises à 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é contient 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 l'inhibition. Une valeur de true mettra cet effet en sourdine.

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 son à jouer. Pour que SoundEffect tente de charger la source, l'URL doit exister et l'application doit disposer d'une autorisation de lecture dans le répertoire spécifié.

Fonctions d'accès :

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

Signal Notificateur :

void sourceChanged()

[read-only] status : Status

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

Fonctions d'accès :

QSoundEffect::Status status() const

Signal du notificateur :

void statusChanged()

volume : float

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

Fonctions d'accès :

float volume() const
void setVolume(float volume)

Signal du notificateur :

void volumeChanged()

Fonction membre Documentation

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

Crée un QSoundEffect avec l'adresse parent.

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

Crée un QSoundEffect avec les adresses audioDevice et parent.

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

Détruit cet effet sonore.

bool QSoundEffect::isLoaded() const

Indique si l'effet sonore a fini de charger le fichier source().

bool QSoundEffect::isMuted() const

Retourne si cet effet sonore est en sourdine

Note : Fonction Getter pour la propriété muted.

bool QSoundEffect::isPlaying() const

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

Remarque : fonction Getter 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 que cet effet sonore sera joué avant de s'arrêter.

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

Remarque : fonction Getter 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é.

Note : Signal de notification pour la propriété loops.

[signal] void QSoundEffect::loopsRemainingChanged()

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

Note : Signal de notification pour la propriété loopsRemaining.

[signal] void QSoundEffect::mutedChanged()

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

Note : Signal de notification pour la propriété muted.

[slot] void QSoundEffect::play()

Lance la lecture de l'effet sonore, en bouclant l'effet le nombre de fois spécifié dans la propriété Loops.

[signal] void QSoundEffect::playingChanged()

Le signal playingChanged est émis lorsque la propriété de lecture a été modifiée.

Note : Signal de notification pour la propriété playing.

void QSoundEffect::setLoopCount(int loopCount)

Définissez le nombre total de fois où cet effet sonore sera joué sur loopCount.

En réglant le nombre de boucles sur 0 ou 1, l'effet sonore ne sera joué qu'une seule fois ; passez à QSoundEffect::Infinite pour qu'il soit répété indéfiniment. Le nombre de boucles peut être modifié pendant la lecture de l'effet sonore, auquel cas les boucles restantes seront mises à jour en fonction du nouveau nombre de boucles loopCount.

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

Voir également loopCount() et loopsRemaining().

void QSoundEffect::setMuted(bool muted)

Définit si la lecture de cet effet sonore doit être mise en sourdine.

Si muted est vrai, la lecture sera coupée (réduite au silence), sinon la lecture se fera avec la valeur actuellement spécifiée volume().

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

Voir également isMuted().

void QSoundEffect::setSource(const QUrl &url)

Fixer l'URL actuelle à lire à url.

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

Voir aussi source().

void QSoundEffect::setVolume(float volume)

Définit le volume de l'effet sonore sur volume.

Le volume est échelonné linéairement de 0.0 (silence) à 1.0 (volume maximum). Les valeurs situées en dehors de cette plage seront bridé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 changements linéaires dans l'intensité sonore perçue, ce qui correspond à ce qu'un utilisateur attend normalement d'un contrôle de volume. Voir QtAudio::convertVolume() pour plus de détails.

Note : Fonction de définition de la propriété volume.

Voir également volume().

QUrl QSoundEffect::source() const

Renvoie l'URL de la source actuelle à lire

Remarque : fonction Getter pour la propriété source.

Voir également setSource().

[signal] void QSoundEffect::sourceChanged()

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

Note : Signal de notification pour la propriété source.

QSoundEffect::Status QSoundEffect::status() const

Renvoie l'état actuel de cet effet sonore.

Remarque : fonction d'obtention de l'état de la propriété.

[signal] void QSoundEffect::statusChanged()

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

Note : Signal de notification pour la propriété status.

[slot] void QSoundEffect::stop()

Arrêter la lecture en cours.

[static] QStringList QSoundEffect::supportedMimeTypes()

Renvoie une liste des types de mime pris en charge pour cette plate-forme.

float QSoundEffect::volume() const

Renvoie le volume actuel de cet effet sonore, de 0.0 (silencieux) à 1.0 (volume maximum).

Remarque : fonction Getter pour la propriété volume.

Voir également setVolume().

[signal] void QSoundEffect::volumeChanged()

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

Note : Signal de notification pour le bien 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.