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
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
Signaux
| void | audioDeviceChanged() |
| void | loadedChanged() |
| void | loopCountChanged() |
| void | loopsRemainingChanged() |
| void | mutedChanged() |
| void | playingChanged() |
| void | sourceChanged() |
| void | statusChanged() |
| void | volumeChanged() |
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
| Constante | Valeur | Description |
|---|---|---|
QSoundEffect::Infinite | -2 | Utilisé comme paramètre de la fonction ` setLoopCount()` pour créer une boucle infinie |
enum QSoundEffect::Status
| Constante | Valeur | Description |
|---|---|---|
QSoundEffect::Null | 0 | Aucune source n'a été définie ou la source est nulle. |
QSoundEffect::Loading | 1 | L'SoundEffect e tente de charger la source. |
QSoundEffect::Ready | 2 | La source est chargée et prête à être lue. |
QSoundEffect::Error | 3 | Une 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 :
| void | loopCountChanged() |
[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 :
| void | loopsRemainingChanged() |
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 :
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 :
| void | playingChanged() |
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 :
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 :
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.