Auf dieser Seite

QAudioEngine Class

QAudioEngine verwaltet ein dreidimensionales Klangfeld. Mehr...

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

Öffentliche Typen

enum OutputMode { Surround, Stereo, Headphone }

Eigenschaften

Öffentliche Funktionen

QAudioEngine()
QAudioEngine(QObject *parent)
QAudioEngine(int sampleRate, QObject *parent = nullptr)
virtual ~QAudioEngine() override
float distanceScale() const
float masterVolume() const
QAudioDevice outputDevice() const
QAudioEngine::OutputMode outputMode() const
bool paused() const
bool roomEffectsEnabled() const
int sampleRate() const
void setDistanceScale(float scale)
void setMasterVolume(float volume)
void setOutputDevice(const QAudioDevice &device)
void setOutputMode(QAudioEngine::OutputMode mode)
void setPaused(bool paused)
void setRoomEffectsEnabled(bool enabled)

Öffentliche Slots

void pause()
void resume()
void start()
void stop()

Signale

Ausführliche Beschreibung

Mit einer Instanz von `QAudioEngine` können Sie ein dreidimensionales Klangfeld verwalten. Ein Klangfeld wird durch mehrere ` QSpatialSound `-Objekte definiert, die einen Ton an einer bestimmten Position im 3D-Raum festlegen. Mit ` QAmbientSound` können Sie zudem Stereo-Overlays hinzufügen.

Mit ` QAudioListener ` können Sie die Position der Person, die das Klangfeld hört, relativ zu den Klangquellen definieren. Klangquellen sind umso leiser, je weiter der Zuhörer von der Quelle entfernt ist. Sie werden außerdem je nach Richtung zwischen Zuhörer und Quelle den entsprechenden Lautsprechern zugeordnet.

QAudioEngine bietet zwei Ausgabemodi. Der erste Modus gibt das Klangfeld über eine Reihe von Lautsprechern wieder, entweder über ein Stereo-Lautsprecherpaar oder eine Surround-Konfiguration. Der zweite Modus sorgt bei Verwendung von Kopfhörern für ein immersives 3D-Klangerlebnis.

Die Wahrnehmung der Schalllokalisierung wird hauptsächlich von zwei Faktoren bestimmt. Der erste Faktor sind die zeitlichen Unterschiede der Schallwellen zwischen dem linken und dem rechten Ohr. Der zweite Faktor ergibt sich aus den verschiedenen Arten, wie Schalle, die aus unterschiedlichen Richtungen kommen, unterschiedliche Reflexionen an unseren Ohren und Köpfen erzeugen. Weitere Details finden Sie unter https://en.wikipedia.org/wiki/Sound_localization.

Die räumliche Audio-Engine emuliert diese Zeitunterschiede und Reflexionen mithilfe von kopfbezogenen Übertragungsfunktionen (HRTF, siehe https://en.wikipedia.org/wiki/Head-related_transfer_function). Die verwendeten Funktionen emulieren diese Effekte für die Ohren und den Kopf einer durchschnittlichen Person. Sie bieten den meisten Menschen bei der Verwendung von Kopfhörern ein gutes und immersives 3D-Klanglokalisierungserlebnis.

Die Engine ist sehr vielseitig und ermöglicht es Ihnen, Raumeigenschaften und Nachhall-Einstellungen zu definieren, um verschiedene Raumtypen zu emulieren.

Schallquellen können zudem verdeckt werden, wodurch der von diesen Quellen kommende Schall gedämpft wird.

Die Audio-Engine verwendet standardmäßig ein Koordinatensystem in Zentimetern. Die Achsen sind an das typische Koordinatensystem in 3D angepasst. Positive x-Werte zeigen nach rechts, positive y-Werte zeigen nach oben und positive z-Werte zeigen nach hinten.

Dokumentation zum Mitgliedstyp

enum QAudioEngine::OutputMode

KonstanteWertBeschreibung
QAudioEngine::Surround0Ordnet die Töne der Lautsprecherkonfiguration des Ausgabegeräts zu. Dabei handelt es sich in der Regel um eine Stereo- oder Surround-Lautsprecherkonfiguration.

Hinweis: „OutputMode ::Surround“ deaktiviert die Wiedergabe von QAmbientSound

QAudioEngine::Stereo1Ordnen Sie die Töne der Stereo-Lautsprecherkonfiguration des Ausgabegeräts zu. Dabei werden zusätzliche Lautsprecher ignoriert und nur der linke und der rechte Kanal verwendet, um eine Stereo-Wiedergabe des Klangfelds zu erzeugen.
QAudioEngine::Headphone2Verwenden Sie die Kopfhörer-Spatialisierung, um einen 3D-Audioeffekt zu erzeugen, wenn Sie das Klangfeld über Kopfhörer hören

Dokumentation der Eigenschaften

distanceScale : float

Legt den Maßstab des Koordinatensystems fest, das von der Spatial-Audio-Engine verwendet wird. Standardmäßig werden alle Einheiten in Zentimetern angegeben, entsprechend den von Qt Quick 3D verwendeten Standardeinheiten.

Stellen Sie den Entfernungsmaßstab auf `QAudioEngine::DistanceScaleMeter` ein, um Einheiten in Metern zu erhalten.

Zugriffsfunktionen:

float distanceScale() const
void setDistanceScale(float scale)

Notifier-Signal:

void distanceScaleChanged()

masterVolume : float

Legt die Lautstärke fest, die zum Rendern des Klangfelds verwendet wird, oder gibt sie zurück.

Zugriffsfunktionen:

float masterVolume() const
void setMasterVolume(float volume)

Benachrichtigungssignal:

void masterVolumeChanged()

outputDevice : QAudioDevice

Legt das Gerät fest, das für die Wiedergabe des Klangfeldes verwendet wird, oder gibt es zurück.

Zugriffsfunktionen:

QAudioDevice outputDevice() const
void setOutputDevice(const QAudioDevice &device)

Benachrichtigungssignal:

void outputDeviceChanged()

outputMode : OutputMode

Legt den aktuellen Ausgabemodus der Engine fest oder ruft ihn ab.

Zugriffsfunktionen:

QAudioEngine::OutputMode outputMode() const
void setOutputMode(QAudioEngine::OutputMode mode)

Benachrichtigungssignal:

void outputModeChanged()

Siehe auch „ QAudioEngine::OutputMode “.

paused : bool

Hält die Raumklang-Engine an.

Zugriffsfunktionen:

bool paused() const
void setPaused(bool paused)

Benachrichtigungssignal:

void pausedChanged()

Dokumentation der Mitgliedsfunktionen

QAudioEngine::QAudioEngine()

[explicit] QAudioEngine::QAudioEngine(QObject *parent)

[explicit] QAudioEngine::QAudioEngine(int sampleRate, QObject *parent = nullptr)

Erstellt eine Spatial-Audio-Engine mit „ parent “, sofern vorhanden.

Die Engine arbeitet mit einer durch ` sampleRate` vorgegebenen Abtastrate. Die Standard-Abtastrate beträgt 44100 (44,1 kHz), sofern keine andere angegeben wird.

Soundinhalte, die nicht mit dieser Abtastrate vorliegen, werden bei der Verarbeitung durch die Engine automatisch auf ` sampleRate ` neu abgetastet. Die Standard-Abtastrate ist in den meisten Fällen ausreichend, Sie können jedoch eine andere Rate festlegen, wenn die meisten Ihrer Sounddateien mit einer anderen Rate abgetastet wurden, um den CPU-Aufwand für das Neusampeln zu vermeiden.

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

Zerstört die Spatial-Audio-Engine.

[slot] void QAudioEngine::pause()

Hält die Wiedergabe an.

[slot] void QAudioEngine::resume()

Setzt die Wiedergabe fort.

bool QAudioEngine::roomEffectsEnabled() const

Gibt „true“ zurück, wenn Raumeffekte aktiviert sind.

Siehe auch „ setRoomEffectsEnabled()“.

int QAudioEngine::sampleRate() const

Gibt die Abtastrate zurück, mit der die Engine konfiguriert wurde.

void QAudioEngine::setRoomEffectsEnabled(bool enabled)

Aktiviert Raumeffekte wie Echos und Hall.

Aktiviert Raumeffekte, wenn „ enabled “ auf „true“ gesetzt ist. Raumeffekte werden nur angewendet, wenn Sie ein oder mehrere „ QAudioRoom “-Objekte erstellen und sich der Zuhörer in mindestens einem der Räume befindet. Befindet sich der Zuhörer in mehreren Räumen, wird der Raum mit dem kleinsten Volumen verwendet.

Siehe auch „ roomEffectsEnabled()“.

[slot] void QAudioEngine::start()

Startet den Motor.

[slot] void QAudioEngine::stop()

Stellt den Motor ab.

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