Spatial Audio Überblick
Die Qt Spatial Audio API bietet eine Reihe von Klassen, die die Erstellung von dreidimensionalen Klangszenen ermöglichen. Sie wird durch Objekte definiert, die sich im 3D-Raum befinden und Schall emittieren, sowie durch die umgebende Geometrie, die durch einen oder mehrere Räume modelliert werden kann. Schließlich kann ein Hörer in dieser Klangszene an einer bestimmten Position und Ausrichtung platziert werden.
Es gibt sowohl C++- als auch QML-APIs, die verwendet werden können.
Erstellen einer Klangszene
Zur Erstellung der Klangszene wird zunächst eine QAudioEngine instanziiert. Diese Engine verarbeitet die eingegebenen Klangdaten und Geometrien, um eine realistische Darstellung der Klangszene zu erzeugen, wie sie von einer Person erlebt würde, die sich an einer bestimmten Stelle innerhalb der Szene befindet.
Die Eigenschaft QAudioEngine::OutputMode kann verwendet werden, um die Ausgabe entweder für Kopfhörer mit binauralem (virtuellem 3D) Rendering oder für eine Stereo- oder Surround-Lautsprecherkonfiguration zu optimieren.
Das Ausgabegerät kann über die Eigenschaft QAudioEngine::outputDevice ausgewählt werden.
Sobald die Engine eingerichtet ist, können wir verschiedene Soundobjekte in der Szene platzieren, indem wir QSpatialSound Objekte erstellen und eine URL zu einer Sounddatei mit der QSpatialSound::source Eigenschaft angeben.
QAudioListener kann verwendet werden, um die Position und die Ausrichtung einer Person zu definieren, die die Tonszene anhört. Es kann maximal ein Hörer pro Engine verwendet werden. Wird kein Zuhörer angegeben, geht die Engine davon aus, dass sich der Zuhörer im Ursprung des Koordinatensystems befindet und in eine positive z-Richtung blickt, wobei die positive y-Richtung nach oben zeigt.
Zusätzlich zu den Schallquellen und dem Hörer können Sie eine Geometrie definieren, die die Art und Weise beeinflusst, wie der Hörer den Schall wahrnimmt, und zwar durch eine Reihe von QAudioRoom Objekten. Räume sind rechteckig und unterstützen eine Vielzahl von Materialien für jede Wand, die ein unterschiedliches Klangerlebnis mit verschiedenen Schallreflexionen und Nachhall erzeugen. Die Raumeffekte werden angewendet, wenn sich der Zuhörer in einem der Räume befindet. Wenn er sich in mehreren Räumen befindet, hat der Raum mit dem kleinsten geometrischen Volumen Vorrang.
Wenn Sie ein Stereo-Overlay benötigen, das unabhängig von der Position und Ausrichtung des Zuhörers ist (z. B. Hintergrundmusik oder ein Voice-over), können Sie QAmbientSound verwenden, um das Sound-Overlay zu erstellen.
Ein kleines QWidget-basiertes Beispiel für eine Audioquelle, die in einem Raum bewegt werden kann, finden Sie im Spacial Audio Panning Example.
Referenz-Dokumentation
C++-Klassen
Ein Stereo-Overlay-Sound | |
Verwaltet ein dreidimensionales Klangfeld | |
Definiert die Position und Ausrichtung der Person, die ein von QAudioEngine definiertes Schallfeld hört | |
Ein Klangobjekt im 3D-Raum |
QML-Typen
Ein Stereo-Overlay-Sound | |
Verwaltet Klangobjekte innerhalb einer 3D-Szene | |
Definiert die Position und Ausrichtung der Person, die ein von einer AudioEngine definiertes Schallfeld hört | |
Ein Klangobjekt im 3D-Raum |
© 2025 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.