Auf dieser Seite

QSpatialSound Class

Ein Klangobjekt im 3D-Raum. Mehr...

Überschrift: #include <QSpatialSound>
CMake: find_package(Qt6 REQUIRED COMPONENTS SpatialAudio)
target_link_libraries(mytarget PRIVATE Qt6::SpatialAudio)
qmake: QT += spatialaudio
Erbt von: QObject

Öffentliche Typen

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

Eigenschaften

Öffentliche Funktionen

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

Öffentliche Slots

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

Signale

Ausführliche Beschreibung

QSpatialSound stellt ein hörbares Objekt im 3D-Raum dar. Sie können dessen Position und Ausrichtung im Raum festlegen, den wiedergegebenen Ton bestimmen und die Lautstärke des Objekts festlegen.

Das Objekt kann unterschiedliche Dämpfungsverhalten aufweisen, den Ton hauptsächlich in eine Richtung oder sphärisch ausstrahlen und sich so verhalten, als würde es von einem anderen Objekt verdeckt.

Dokumentation zu den Mitgliedstypen

enum class QSpatialSound::DistanceModel

Legt fest, wie sich die Lautstärke in Abhängigkeit von der Entfernung zum Zuhörer verändert.

KonstantWertBeschreibung
QSpatialSound::DistanceModel::Logarithmic0Die Lautstärke nimmt logarithmisch mit der Entfernung ab.
QSpatialSound::DistanceModel::Linear1Die Lautstärke nimmt linear mit zunehmender Entfernung ab.
QSpatialSound::DistanceModel::ManualAttenuation2Die Dämpfung wird manuell über die Eigenschaft „ manualAttenuation “ festgelegt.

enum QSpatialSound::Loops

Ermöglicht Ihnen, die Wiederholungsschleife der Tonwiedergabe mithilfe der folgenden Werte zu steuern:

KonstantWertBeschreibung
QSpatialSound::Infinite-1Endlos wiedergeben
QSpatialSound::Once1Einmal abspielen

Eigenschaftsdokumentation

autoPlay : bool

Legt fest, ob die Wiedergabe des Sounds automatisch starten soll, sobald eine Quelle angegeben wird.

Der Standardwert ist „ true “.

Zugriffsfunktionen:

bool autoPlay() const
void setAutoPlay(bool autoPlay)

Benachrichtigungssignal:

void autoPlayChanged()

directivity : float

Legt die Richtwirkung der Schallquelle fest. Der Wert 0 bedeutet, dass der Schall gleichmäßig in alle Richtungen abgestrahlt wird, während der Wert 1 bedeutet, dass die Quelle den Schall hauptsächlich nach vorne abstrahlt.

Gültige Werte liegen zwischen 0 und 1, der Standardwert ist 0.

Zugriffsfunktionen:

float directivity() const
void setDirectivity(float alpha)

Benachrichtigungssignal:

void directivityChanged()

directivityOrder : float

Legt die Ordnung der Richtcharakteristik der Schallquelle fest. Eine höhere Ordnung bedeutet eine präzisere Lokalisierung des Schallkegels.

Der Mindestwert und der Standardwert für diese Eigenschaft ist 1.

Zugriffsfunktionen:

float directivityOrder() const
void setDirectivityOrder(float alpha)

Benachrichtigungssignal:

void directivityOrderChanged()

distanceCutoff : float

Legt eine Entfernung fest, jenseits derer der von der Quelle kommende Ton abfällt. Befindet sich der Zuhörer weiter vom Klangobjekt entfernt als die festgelegte Abklingentfernung, ist der Ton nicht mehr hörbar.

Zugriffsfunktionen:

float distanceCutoff() const
void setDistanceCutoff(float cutoff)

Benachrichtigungssignal:

void distanceCutoffChanged()

distanceModel : DistanceModel

Definiert das Entfernungsmodell für diese Schallquelle. Die Lautstärke wird von size bis distanceCutoff schrittweise verringert. Bei Entfernungen, die kleiner als „size“ sind, bleibt die Lautstärke konstant, bei Entfernungen, die größer als die „cutoff distance“ sind, beträgt sie null.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void distanceModelChanged()

Siehe auch QSpatialSound::DistanceModel.

loops : int

Legt fest, wie oft der Ton abgespielt wird, bevor der Player stoppt. Setzen Sie den Wert auf „ QSpatialSound::Infinite “, um den aktuellen Ton endlos in einer Schleife abzuspielen.

Der Standardwert ist „ 1 “.

Zugriffsfunktionen:

int loops() const
void setLoops(int loops)

Benachrichtigungssignal:

void loopsChanged()

manualAttenuation : float

Legt einen manuellen Dämpfungsfaktor fest, wenn „ distanceModel “ auf „ QSpatialSound::DistanceModel::ManualAttenuation “ gesetzt ist.

Zugriffsfunktionen:

float manualAttenuation() const
void setManualAttenuation(float attenuation)

Benachrichtigungssignal:

void manualAttenuationChanged()

nearFieldGain : float

Legt die Nahfeldverstärkung für die Schallquelle fest. Gültige Werte liegen zwischen 0 und 1. Eine Nahfeldverstärkung von 1 erhöht die Lautstärke des Tonsignals um ca. 20 dB bei Entfernungen, die sehr nahe am Hörer liegen.

Zugriffsfunktionen:

float nearFieldGain() const
void setNearFieldGain(float gain)

Benachrichtigungssignal:

void nearFieldGainChanged()

occlusionIntensity : float

Legt fest, inwieweit das Objekt verdeckt ist. Der Wert 0 bedeutet, dass das Objekt überhaupt nicht verdeckt ist, während der Wert 1 bedeutet, dass die Schallquelle vollständig von einem anderen Objekt verdeckt ist.

Ein vollständig verdecktes Objekt ist zwar weiterhin hörbar, jedoch werden insbesondere höhere Frequenzen gedämpft. Zudem trägt das Objekt weiterhin zur Erzeugung von Hall und Reflexionen im Raum bei.

Werte größer als 1 sind möglich, um den von der Quelle kommenden Direktschall weiter zu dämpfen.

Der Standardwert ist 0.

Zugriffsfunktionen:

float occlusionIntensity() const
void setOcclusionIntensity(float occlusion)

Benachrichtigungssignal:

void occlusionIntensityChanged()

position : QVector3D

Legt die Position der Schallquelle im 3D-Raum fest. Die Einheiten sind standardmäßig in Zentimetern angegeben.

Zugriffsfunktionen:

QVector3D position() const
void setPosition(QVector3D pos)

Benachrichtigungssignal:

void positionChanged()

Siehe auch QAudioEngine::distanceScale.

rotation : QQuaternion

Legt die Ausrichtung der Schallquelle im 3D-Raum fest.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void rotationChanged()

size : float

Legt die Größe der Schallquelle fest. Befindet sich der Zuhörer näher am Schallobjekt als diese Größe, bleibt die Lautstärke konstant. Die Größe wird außerdem für Okklusionsberechnungen herangezogen, bei denen große Schallquellen teilweise durch eine Wand verdeckt werden können.

Zugriffsfunktionen:

float size() const
void setSize(float size)

Benachrichtigungssignal:

void sizeChanged()

source : QUrl

Die Quelldatei für den abzuspielenden Ton.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void sourceChanged()

volume : float

Legt die Lautstärke des Tons fest.

Werte zwischen 0 und 1 dämpfen den Ton, während Werte über 1 für eine zusätzliche Verstärkung sorgen.

Zugriffsfunktionen:

float volume() const
void setVolume(float volume)

Benachrichtigungssignal:

void volumeChanged()

Dokumentation der Member-Funktionen

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

Erstellt eine räumliche Klangquelle für „ engine “. Das Objekt kann im 3D-Raum platziert werden und wird umso lauter, je näher es sich am Zuhörer befindet.

Hinweis: Muss mit einem gültigen QAudioEngine

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

Zerstört die Schallquelle.

QAudioEngine *QSpatialSound::engine() const

Gibt die Engine zurück, die diesem Listener zugeordnet ist.

[slot] void QSpatialSound::pause()

Hält die Tonwiedergabe an. Durch den Aufruf von ` play()` wird die Wiedergabe fortgesetzt.

[slot] void QSpatialSound::play()

Die Wiedergabe des Tons wird gestartet. Es geschieht nichts, wenn der Ton bereits abgespielt wird.

[slot] void QSpatialSound::stop()

Beendet die Soundwiedergabe und setzt die aktuelle Position sowie die aktuelle Schleifenanzahl auf 0 zurück. Durch den Aufruf von ` play()` wird die Wiedergabe am Anfang der Sounddatei gestartet.

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