En esta página

QSpatialSound Class

Un objeto sonoro en el espacio 3D. Más...

Cabecera: #include <QSpatialSound>
CMake: find_package(Qt6 REQUIRED COMPONENTS SpatialAudio)
target_link_libraries(mytarget PRIVATE Qt6::SpatialAudio)
qmake: QT += spatialaudio
Hereda: QObject

Tipos públicos

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

Propiedades

Funciones públicas

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

Ranuras públicas

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

Señales

Descripción Detallada

QSpatialSound representa un objeto audible en el espacio 3D. Se puede definir su posición y orientación en el espacio, establecer el sonido que emite y definir un volumen para el objeto.

El objeto puede tener diferentes comportamientos de atenuación, emitir sonido principalmente en una dirección o esféricamente, y comportarse como si estuviera ocluido por algún otro objeto.

Documentación de los tipos de miembros

enum class QSpatialSound::DistanceModel

Define cómo escala el volumen del sonido con la distancia al oyente.

ConstanteValorDescripción
QSpatialSound::DistanceModel::Logarithmic0El volumen disminuye logarítmicamente con la distancia.
QSpatialSound::DistanceModel::Linear1El volumen disminuye linealmente con la distancia.
QSpatialSound::DistanceModel::ManualAttenuation2La atenuación se define manualmente mediante la propiedad manualAttenuation.

enum QSpatialSound::Loops

Le permite controlar el bucle de reproducción de sonido utilizando los siguientes valores:

ConstanteValorDescripción
QSpatialSound::Infinite-1Reproducción infinita
QSpatialSound::Once1Reproducir una vez

Documentación de propiedades

autoPlay : bool

Determina si el sonido debe empezar a reproducirse automáticamente cuando se especifica una fuente.

El valor por defecto es true.

Funciones de acceso:

bool autoPlay() const
void setAutoPlay(bool autoPlay)

Señal del notificador:

void autoPlayChanged()

directivity : float

Define la directividad de la fuente de sonido. Un valor de 0 implica que el sonido se emite por igual en todas las direcciones, mientras que un valor de 1 implica que la fuente emite sonido principalmente en la dirección hacia delante.

Los valores válidos están comprendidos entre 0 y 1, el valor por defecto es 0.

Funciones de acceso:

float directivity() const
void setDirectivity(float alpha)

Señal del notificador:

void directivityChanged()

directivityOrder : float

Define el orden de la directividad de la fuente sonora. Un orden más alto implica una localización más nítida del cono sonoro.

El valor mínimo y por defecto de esta propiedad es 1.

Funciones de acceso:

float directivityOrder() const
void setDirectivityOrder(float alpha)

Señal notificadora:

void directivityOrderChanged()

distanceCutoff : float

Define una distancia a partir de la cual el sonido procedente de la fuente se corta. Si el oyente está más lejos del objeto sonoro que la distancia de corte, éste dejará de ser audible.

Funciones de acceso:

float distanceCutoff() const
void setDistanceCutoff(float cutoff)

Señal de aviso:

void distanceCutoffChanged()

distanceModel : DistanceModel

Define el modelo de distancia para esta fuente de sonido. El volumen empieza a bajar de size a distanceCutoff. El volumen es constante para distancias menores que el tamaño y cero para distancias mayores que la distancia de corte.

Funciones de acceso:

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

Señal notificadora:

void distanceModelChanged()

Véase también QSpatialSound::DistanceModel.

loops : int

Determina cuántas veces se reproduce el sonido antes de que el reproductor se detenga. Establézcalo en QSpatialSound::Infinite para reproducir el sonido actual en bucle para siempre.

El valor por defecto es 1.

Funciones de acceso:

int loops() const
void setLoops(int loops)

Señal del notificador:

void loopsChanged()

manualAttenuation : float

Define un factor de atenuación manual si distanceModel está ajustado a QSpatialSound::DistanceModel::ManualAttenuation.

Funciones de acceso:

float manualAttenuation() const
void setManualAttenuation(float attenuation)

Señal de aviso:

void manualAttenuationChanged()

nearFieldGain : float

Define la ganancia de campo cercano para la fuente de sonido. Los valores válidos están entre 0 y 1. Una ganancia de campo cercano de 1 aumentará el volumen de la señal sonora en aproximadamente 20 dB para distancias muy cercanas al oyente.

Funciones de acceso:

float nearFieldGain() const
void setNearFieldGain(float gain)

Señal del avisador:

void nearFieldGainChanged()

occlusionIntensity : float

Define el grado de oclusión del objeto. 0 implica que el objeto no está ocluido en absoluto, 1 implica que la fuente de sonido está totalmente ocluida por otro objeto.

Un objeto totalmente ocluido seguirá siendo audible, pero se amortiguarán especialmente las frecuencias más altas. Además, el objeto seguirá participando en la generación de reverberación y reflexiones en la sala.

Es posible utilizar valores superiores a 1 para amortiguar aún más el sonido directo procedente de la fuente.

El valor por defecto es 0.

Funciones de acceso:

float occlusionIntensity() const
void setOcclusionIntensity(float occlusion)

Señal del notificador:

void occlusionIntensityChanged()

position : QVector3D

Define la posición de la fuente de sonido en el espacio 3D. Por defecto, las unidades están en centímetros.

Funciones de acceso:

QVector3D position() const
void setPosition(QVector3D pos)

Señal del notificador:

void positionChanged()

Véase también QAudioEngine::distanceScale.

rotation : QQuaternion

Define la orientación de la fuente sonora en el espacio 3D.

Funciones de acceso:

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

Señal del notificador:

void rotationChanged()

size : float

Define el tamaño de la fuente sonora. Si el oyente está más cerca del objeto sonoro que el tamaño, el volumen se mantendrá constante. El tamaño también se utiliza para los cálculos de oclusión, en los que las fuentes grandes pueden quedar parcialmente ocluidas por una pared.

Funciones de acceso:

float size() const
void setSize(float size)

Señal del notificador:

void sizeChanged()

source : QUrl

El archivo fuente del sonido que se va a reproducir.

Funciones de acceso:

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

Señal de aviso:

void sourceChanged()

volume : float

Define el volumen del sonido.

Los valores entre 0 y 1 atenúan el sonido, mientras que los valores superiores a 1 proporcionan un aumento adicional de la ganancia.

Funciones de acceso:

float volume() const
void setVolume(float volume)

Señal del notificador:

void volumeChanged()

Documentación de las funciones miembro

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

Crea una fuente de sonido espacial para engine. El objeto puede colocarse en un espacio tridimensional y será más fuerte cuanto más cerca esté del oyente.

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

Destruye la fuente de sonido.

QAudioEngine *QSpatialSound::engine() const

Devuelve el motor asociado a este oyente.

[slot] void QSpatialSound::pause()

Detiene la reproducción del sonido. Llamando a play() continuará la reproducción.

[slot] void QSpatialSound::play()

Inicia la reproducción del sonido. No hace nada si el sonido ya se está reproduciendo.

[slot] void QSpatialSound::stop()

Detiene la reproducción del sonido y restablece la posición actual y la cuenta de bucles actual a 0. Si se llama a play(), la reproducción comenzará al principio del archivo de sonido.

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