Überblick über räumliches Audio
Die „ Qt Spatial Audio “-API stellt eine Reihe von Klassen bereit, mit denen sich dreidimensionale Klanglandschaften erstellen lassen. Diese werden durch Objekte im 3D-Raum definiert, die Ton ausstrahlen, sowie durch die umgebende Geometrie, die mithilfe eines oder mehrerer Räume modelliert werden kann. Schließlich kann ein Zuhörer an einer bestimmten Position und Ausrichtung in dieser Klanglandschaft platziert werden.
Es stehen sowohl C++- als auch QML-APIs zur Verfügung.
Erstellen einer Klangszene
Um die Klangszene zu erstellen, instanziiert man zunächst eine ` QAudioEngine`. Diese Engine verarbeitet eingehende Klangdaten und Geometrien, um eine realistische Darstellung der Klangszene zu erzeugen, wie sie von einer Person wahrgenommen 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 mittels binauraler (virtueller 3D-)Wiedergabe 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 Klangobjekte in die Szene platzieren, indem wir „ QSpatialSound “-Objekte erstellen und mithilfe der Eigenschaft „ QSpatialSound::source “ eine URL zu einer Audiodatei angeben.
QAudioListener Mit `listener` lassen sich Position und Ausrichtung einer Person definieren, die die Soundszene hört. Pro Engine kann maximal ein Zuhörer verwendet werden. Wird kein Zuhörer angegeben, geht die Engine davon aus, dass sich der Zuhörer am Ursprung des Koordinatensystems befindet und in die positive z-Richtung blickt, wobei die positive y-Achse nach oben zeigt.
Zusätzlich zu Klangquellen und einem Zuhörer können Sie mithilfe einer Reihe von „ QAudioRoom “-Objekten eine Geometrie definieren, die beeinflusst, wie der Klang vom Zuhörer wahrgenommen wird. Räume sind rechteckig und unterstützen eine Vielzahl von Materialien für jede Wand, was durch unterschiedliche Schallreflexionen und Nachhall ein unterschiedliches Hörerlebnis erzeugt. Raumeffekte werden angewendet, wenn sich der Zuhörer in einem der Räume befindet. Befindet er sich in mehreren Räumen, hat der Raum mit dem kleinsten geometrischen Volumen Vorrang.
Wenn Sie eine Stereo-Überlagerung benötigen, die unabhängig von der Position und Ausrichtung des Zuhörers ist (z. B. Hintergrundmusik oder ein Voice-Over), können Sie „ QAmbientSound “ verwenden, um die Tonüberlagerung zu erzeugen.
Ein kleines, auf QWidget basierendes Beispiel, das eine Audioquelle zeigt, die innerhalb eines Raums verschoben werden kann, finden Sie im Beispiel „Spacial Audio Panning“.
Referenzdokumentation
C++-Klassen
Ein Stereo-Overlay-Sound | |
Verwaltet ein dreidimensionales Klangfeld | |
Definiert die Position und Ausrichtung der Person, die ein von QAudioEngine definiertes Klangfeld 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 Soundobjekt im 3D-Raum |
© 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.