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
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 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
| Constante | Valeur | Description |
|---|---|---|
QSoundEffect::Infinite | -2 | Utilisée comme paramètre de setLoopCount() pour les boucles infinies. |
enum QSoundEffect::Status
| Constante | Valeur | Description de la source |
|---|---|---|
QSoundEffect::Null | 0 | Aucune source n'a été définie ou la source est nulle. |
QSoundEffect::Loading | 1 | Le site SoundEffect essaie 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 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 :
| void | loopCountChanged() |
[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 :
| void | loopsRemainingChanged() |
muted : bool
Cette propriété permet de contrôler l'inhibition. Une valeur de true mettra cet effet en sourdine.
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 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 :
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 :
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.