Sur cette page

QSpatialSound Class

Un objet sonore dans l'espace 3D. En savoir plus...

En-tête : #include <QSpatialSound>
CMake : find_package(Qt6 REQUIRED COMPONENTS SpatialAudio)
target_link_libraries(mytarget PRIVATE Qt6::SpatialAudio)
qmake : QT += spatialaudio
Hérite de : QObject

Types publics

enum class DistanceModel { Logarithmic, Linear, ManualAttenuation }
enum Loops { Infinite, Once }

Propriétés

Fonctions publiques

QSpatialSound(QAudioEngine *engine)
virtual ~QSpatialSound() override
bool autoPlay() const
float directivity() const
float directivityOrder() const
float distanceCutoff() const
QSpatialSound::DistanceModel distanceModel() const
QAudioEngine *engine() const
int loops() const
float manualAttenuation() const
float nearFieldGain() const
float occlusionIntensity() const
QVector3D position() const
QQuaternion rotation() const
void setAutoPlay(bool autoPlay)
void setDirectivity(float alpha)
void setDirectivityOrder(float alpha)
void setDistanceCutoff(float cutoff)
void setDistanceModel(QSpatialSound::DistanceModel model)
void setLoops(int loops)
void setManualAttenuation(float attenuation)
void setNearFieldGain(float gain)
void setOcclusionIntensity(float occlusion)
void setPosition(QVector3D pos)
void setRotation(const QQuaternion &q)
void setSize(float size)
void setSource(const QUrl &url)
void setVolume(float volume)
float size() const
QUrl source() const
float volume() const

Emplacements publics

void pause()
void play()
void stop()

Signaux

Description détaillée

QSpatialSound représente un objet sonore dans un espace 3D. Vous pouvez définir sa position et son orientation dans l'espace, choisir le son qu'il émet et définir son volume.

L'objet peut présenter différents comportements d'atténuation, émettre du son principalement dans une direction ou de manière sphérique, et se comporter comme s'il était masqué par un autre objet.

Documentation sur les types de membres

enum class QSpatialSound::DistanceModel

Définit la manière dont le volume sonore varie en fonction de la distance par rapport à l'auditeur.

ConstanteValeurDescription
QSpatialSound::DistanceModel::Logarithmic0Le volume diminue de manière logarithmique en fonction de la distance.
QSpatialSound::DistanceModel::Linear1Le volume diminue de manière linéaire en fonction de la distance.
QSpatialSound::DistanceModel::ManualAttenuation2L'atténuation est définie manuellement à l'aide de la propriété « manualAttenuation ».

enum QSpatialSound::Loops

Vous permet de contrôler la boucle de lecture du son à l'aide des valeurs suivantes :

ConstanteValeurDescription
QSpatialSound::Infinite-1Lecture en boucle infinie
QSpatialSound::Once1Lecture unique

Documentation sur les propriétés

autoPlay : bool

Détermine si la lecture du son doit démarrer automatiquement lorsqu'une source est spécifiée.

La valeur par défaut est « true ».

Fonctions d'accès :

bool autoPlay() const
void setAutoPlay(bool autoPlay)

Signal de notification :

void autoPlayChanged()

directivity : float

Définit la directivité de la source sonore. Une valeur de 0 signifie que le son est émis de manière uniforme dans toutes les directions, tandis qu'une valeur de 1 signifie que la source émet principalement le son vers l'avant.

Les valeurs valides sont comprises entre 0 et 1 ; la valeur par défaut est 0.

Fonctions d'accès :

float directivity() const
void setDirectivity(float alpha)

Signal de notification :

void directivityChanged()

directivityOrder : float

Définit l'ordre de directivité de la source sonore. Un ordre plus élevé implique une localisation plus précise du cône sonore.

La valeur minimale et la valeur par défaut de cette propriété sont 1.

Fonctions d'accès :

float directivityOrder() const
void setDirectivityOrder(float alpha)

Signal de notification :

void directivityOrderChanged()

distanceCutoff : float

Définit une distance au-delà de laquelle le son provenant de la source sera coupé. Si l'auditeur se trouve à une distance de l'objet sonore supérieure à la distance de coupure, celui-ci ne sera plus audible.

Fonctions d'accès :

float distanceCutoff() const
void setDistanceCutoff(float cutoff)

Signal de notification :

void distanceCutoffChanged()

distanceModel : DistanceModel

Définit le modèle de distance pour cette source sonore. Le volume diminue progressivement de size à distanceCutoff. Le volume reste constant pour les distances inférieures à « size » et vaut zéro pour les distances supérieures à la distance de coupure.

Fonctions d'accès :

QSpatialSound::DistanceModel distanceModel() const
void setDistanceModel(QSpatialSound::DistanceModel model)

Signal de notification :

void distanceModelChanged()

Voir également QSpatialSound::DistanceModel.

loops : int

Détermine le nombre de fois où le son est lu avant que le lecteur ne s'arrête. Définissez cette option sur « QSpatialSound::Infinite » pour lire le son actuel en boucle indéfiniment.

La valeur par défaut est « 1 ».

Fonctions d'accès :

int loops() const
void setLoops(int loops)

Signal de notification :

void loopsChanged()

manualAttenuation : float

Définit un facteur d'atténuation manuel si l'option « distanceModel » est définie sur « QSpatialSound::DistanceModel::ManualAttenuation ».

Fonctions d'accès :

float manualAttenuation() const
void setManualAttenuation(float attenuation)

Signal de notification :

void manualAttenuationChanged()

nearFieldGain : float

Définit le gain en champ proche de la source sonore. Les valeurs valides sont comprises entre 0 et 1. Un gain en champ proche de 1 augmentera le volume du signal sonore d'environ 20 dB à des distances très proches de l'auditeur.

Fonctions d'accès :

float nearFieldGain() const
void setNearFieldGain(float gain)

Signal de notification :

void nearFieldGainChanged()

occlusionIntensity : float

Définit le degré d'occlusion de l'objet. La valeur 0 signifie que l'objet n'est pas du tout occlus, tandis que la valeur 1 signifie que la source sonore est entièrement occluse par un autre objet.

Un objet entièrement masqué restera audible, mais les fréquences aiguës, en particulier, seront atténuées. De plus, l'objet continuera à contribuer à la création de la réverbération et des réflexions dans la pièce.

Des valeurs supérieures à 1 sont possibles pour atténuer davantage le son direct provenant de la source.

La valeur par défaut est 0.

Fonctions d'accès :

float occlusionIntensity() const
void setOcclusionIntensity(float occlusion)

Signal de notification :

void occlusionIntensityChanged()

position : QVector3D

Définit la position de la source sonore dans l'espace 3D. Les unités sont exprimées en centimètres par défaut.

Fonctions d'accès :

QVector3D position() const
void setPosition(QVector3D pos)

Signal de notification :

void positionChanged()

Voir aussi QAudioEngine::distanceScale.

rotation : QQuaternion

Définit l'orientation de la source sonore dans l'espace 3D.

Fonctions d'accès :

QQuaternion rotation() const
void setRotation(const QQuaternion &q)

Signal de notification :

void rotationChanged()

size : float

Définit la taille de la source sonore. Si l'auditeur se trouve plus près de l'objet sonore que cette taille, le volume restera constant. La taille est également utilisée pour les calculs d'occlusion, dans lesquels les sources de grande taille peuvent être partiellement masquées par un mur.

Fonctions d'accès :

float size() const
void setSize(float size)

Signal de notification :

void sizeChanged()

source : QUrl

Fichier source du son à lire.

Fonctions d'accès :

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

Signal de notification :

void sourceChanged()

volume : float

Définit le volume du son.

Les valeurs comprises entre 0 et 1 atténuent le son, tandis que les valeurs supérieures à 1 augmentent le gain.

Fonctions d'accès :

float volume() const
void setVolume(float volume)

Signal de notification :

void volumeChanged()

Documentation des fonctions membres

[explicit] QSpatialSound::QSpatialSound(QAudioEngine *engine)

Crée une source sonore spatiale pour engine. L'objet peut être placé dans l'espace 3D et son volume augmentera à mesure qu'il se rapprochera de l'auditeur.

Remarque : doit être appelé avec un QAudioEngine

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

Détruit la source sonore.

QAudioEngine *QSpatialSound::engine() const

Renvoie le moteur associé à cet écouteur.

[slot] void QSpatialSound::pause()

Met la lecture audio en pause. L'appel de la méthode play() permet de reprendre la lecture.

[slot] void QSpatialSound::play()

Lance la lecture du son. Ne fait rien si le son est déjà en cours de lecture.

[slot] void QSpatialSound::stop()

Arrête la lecture du son et remet à 0 la position courante ainsi que le nombre de boucles en cours. L'appel de la fonction ` play()` relancera la lecture depuis le début du fichier audio.

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