Auf dieser Seite

QSoundEffect Class

Die Klasse „QSoundEffect“ bietet die Möglichkeit, Soundeffekte mit geringer Latenz abzuspielen. Mehr...

Überschrift: #include <QSoundEffect>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
In QML: SoundEffect
Erbt von: QObject

Öffentliche Typen

enum Loop { Infinite }
enum Status { Null, Loading, Ready, Error }

Eigenschaften

Öffentliche Funktionen

QSoundEffect(QObject *parent = nullptr)
QSoundEffect(const QAudioDevice &audioDevice, QObject *parent = nullptr)
virtual ~QSoundEffect() override
QAudioDevice audioDevice()
bool isLoaded() const
bool isMuted() const
bool isPlaying() const
int loopCount() const
int loopsRemaining() const
void setAudioDevice(const QAudioDevice &device)
void setLoopCount(int loopCount)
void setMuted(bool muted)
void setSource(const QUrl &url)
void setVolume(float volume)
QUrl source() const
QSoundEffect::Status status() const
float volume() const

Öffentliche Slots

void play()
void stop()

Signale

Statische öffentliche Mitglieder

QStringList supportedMimeTypes()

Ausführliche Beschreibung

Diese Klasse ermöglicht es Ihnen, unkomprimierte Audiodateien (in der Regel WAV-Dateien) mit einer generell geringeren Latenz abzuspielen und eignet sich für „Feedback“-Sounds als Reaktion auf Benutzeraktionen (z. B. Sounds einer virtuellen Tastatur, positives oder negatives Feedback bei Popup-Dialogen oder Spielsounds). Wenn eine geringe Latenz nicht wichtig ist, sollten Sie stattdessen die Klasse „ QMediaPlayer “ in Betracht ziehen, da diese eine größere Vielfalt an Medienformaten unterstützt und weniger Ressourcen beansprucht.

Dieses Beispiel zeigt, wie ein sich wiederholender, relativ leiser Soundeffekt abgespielt werden kann:

QSoundEffect effect;
effect.setSource(QUrl::fromLocalFile("engine.wav"));
effect.setLoopCount(QSoundEffect::Infinite);
effect.setVolume(0.25f);
effect.play();

In der Regel sollte der Soundeffekt wiederverwendet werden, wodurch die gesamte Analyse und Vorbereitung im Voraus erfolgen kann und er nur bei Bedarf ausgelöst wird. Dies trägt zu einer Audiowiedergabe mit geringerer Latenz bei.

    MyGame()
        : m_explosion(this)
    {
        m_explosion.setSource(QUrl::fromLocalFile("explosion.wav"));
        m_explosion.setVolume(0.25f);

        // Set up click handling etc.
        connect(clickSource, &QPushButton::clicked, &m_explosion, &QSoundEffect::play);
    }
private:
    QSoundEffect m_explosion;

Da „QSoundEffect“ etwas mehr Ressourcen benötigt, um eine Wiedergabe mit niedriger Latenz zu erreichen, kann die Plattform die Anzahl der gleichzeitig abgespielten Soundeffekte begrenzen.

Dokumentation zu Mitgliedstypen

enum QSoundEffect::Loop

KonstanteWertBeschreibung
QSoundEffect::Infinite-2Wird als Parameter für ` setLoopCount()` verwendet, um eine Endlosschleife zu erzeugen

enum QSoundEffect::Status

KonstanteWertBeschreibung
QSoundEffect::Null0Es wurde keine Quelle festgelegt oder die Quelle ist null.
QSoundEffect::Loading1Der „ SoundEffect “ versucht, die Quelle zu laden.
QSoundEffect::Ready2Die Quelle ist geladen und bereit zur Wiedergabe.
QSoundEffect::Error3Während des Vorgangs ist ein Fehler aufgetreten, z. B. ein Fehler beim Laden der Quelle.

Eigenschaftsdokumentation

audioDevice : QAudioDevice

Gibt die Instanz „ QAudioDevice “ zurück.

Zugriffsfunktionen:

QAudioDevice audioDevice()
void setAudioDevice(const QAudioDevice &device)

Notifier-Signal:

void audioDeviceChanged()

loops : int

Diese Eigenschaft gibt an, wie oft der Sound abgespielt wird. Ein Wert von 0 oder 1 bedeutet, dass der Sound nur einmal abgespielt wird; setzen Sie den Wert auf „ SoundEffect Infinite“, um eine Endlosschleife zu aktivieren.

Der Wert kann während der Wiedergabe des Soundeffekts geändert werden; in diesem Fall werden die verbleibenden Wiederholungen auf den neuen Wert aktualisiert.

Zugriffsfunktionen:

int loopCount() const
void setLoopCount(int loopCount)

Benachrichtigungssignal:

[read-only] loopsRemaining : int

Diese Eigenschaft enthält die Anzahl der verbleibenden Wiederholungen, bis der Soundeffekt von selbst stoppt, oder „ QSoundEffect::Infinite “, falls dies unter „ loops “ so eingestellt wurde.

Zugriffsfunktionen:

int loopsRemaining() const

Benachrichtigungssignal:

muted : bool

Diese Eigenschaft ermöglicht die Steuerung der Stummschaltung. Bei dem Wert „ true “ wird dieser Effekt stummgeschaltet.

Zugriffsfunktionen:

bool isMuted() const
void setMuted(bool muted)

Benachrichtigungssignal:

void mutedChanged()

[read-only] playing : bool

Diese Eigenschaft gibt an, ob der Soundeffekt gerade abgespielt wird oder nicht.

Zugriffsfunktionen:

bool isPlaying() const

Benachrichtigungssignal:

source : QUrl

Diese Eigenschaft enthält die URL des abzuspielenden Sounds. Damit der „ SoundEffect “ versuchen kann, die Quelle zu laden, muss die URL existieren und die Anwendung muss über Leserechte für das angegebene Verzeichnis verfügen.

Zugriffsfunktionen:

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

Notifier-Signal:

void sourceChanged()

[read-only] status : Status

Diese Eigenschaft gibt den aktuellen Status des Soundeffekts anhand der Aufzählung „ QSoundEffect::Status “ an.

Zugriffsfunktionen:

QSoundEffect::Status status() const

Benachrichtigungssignal:

void statusChanged()

volume : float

Diese Eigenschaft gibt die Lautstärke der Soundeffektwiedergabe an, von 0,0 (Stille) bis 1,0 (volle Lautstärke).

Zugriffsfunktionen:

float volume() const
void setVolume(float volume)

Benachrichtigungssignal:

void volumeChanged()

Dokumentation der Mitgliedsfunktionen

[explicit] QSoundEffect::QSoundEffect(QObject *parent = nullptr)

Erstellt einen `QSoundEffect` mit dem angegebenen ` parent`.

[explicit] QSoundEffect::QSoundEffect(const QAudioDevice &audioDevice, QObject *parent = nullptr)

Erstellt einen QSoundEffect mit den angegebenen Werten für „ audioDevice “ und „ parent “.

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

Löscht diesen Soundeffekt.

bool QSoundEffect::isLoaded() const

Gibt zurück, ob der Soundeffekt vollständig geladen wurde: ` source()`.

bool QSoundEffect::isMuted() const

Gibt zurück, ob dieser Soundeffekt stummgeschaltet ist

Hinweis: Getter -Funktion für die Eigenschaft „ muted “.

bool QSoundEffect::isPlaying() const

Gibt „true“ zurück, wenn der Soundeffekt gerade abgespielt wird, andernfalls „false“

Hinweis: Getter -Funktion für die Eigenschaft „ playing “.

[signal] void QSoundEffect::loadedChanged()

Das Signal „ loadedChanged “ wird ausgegeben, wenn sich der Ladezustand geändert hat.

int QSoundEffect::loopCount() const

Gibt die Gesamtanzahl der Wiedergaben dieses Soundeffekts zurück, bevor er beendet wird.

Informationen zur Anzahl der derzeit verbleibenden Wiederholungen finden Sie in der Methode „ loopsRemaining()“.

Hinweis: Getter -Funktion für die Eigenschaft „ loops “.

Siehe auch „ setLoopCount()“.

[signal] void QSoundEffect::loopCountChanged()

Das Signal „ loopCountChanged “ wird ausgelöst, wenn sich die anfängliche Anzahl der Schleifen geändert hat.

Hinweis: Benachrichtigungssignal für die Eigenschaft „ loops “.

[signal] void QSoundEffect::loopsRemainingChanged()

Das Signal „ loopsRemainingChanged “ wird ausgelöst, wenn sich die Anzahl der verbleibenden Schleifen geändert hat.

Hinweis: Benachrichtigungssignal für die Eigenschaft „ loopsRemaining “.

[signal] void QSoundEffect::mutedChanged()

Das Signal „ mutedChanged “ wird ausgegeben, wenn sich der Stummschaltungsstatus geändert hat.

Hinweis: Notifier -Signal für die Eigenschaft „ muted “.

[slot] void QSoundEffect::play()

Starte die Wiedergabe des Soundeffekts und wiederhole den Effekt so oft, wie in der Eigenschaft „loops“ angegeben.

[signal] void QSoundEffect::playingChanged()

Das Signal „ playingChanged “ wird ausgelöst, wenn sich die Eigenschaft „playing“ geändert hat.

Hinweis: Notifier -Signal für die Eigenschaft „ playing “.

void QSoundEffect::setLoopCount(int loopCount)

Legen Sie die Gesamtanzahl der Wiedergaben dieses Soundeffekts auf „ loopCount “ fest.

Wenn die Schleifenanzahl auf 0 oder 1 gesetzt wird, wird der Soundeffekt nur einmal abgespielt; übergeben Sie „ QSoundEffect::Infinite “, um ihn unbegrenzt zu wiederholen. Die Schleifenanzahl kann während der Wiedergabe des Soundeffekts geändert werden. In diesem Fall wird die verbleibende Anzahl der Schleifen auf den neuen Wert „ loopCount “ aktualisiert.

Hinweis: Setter -Funktion für die Eigenschaft „ loops “.

Siehe auch „ loopCount()“ und „ loopsRemaining()“.

void QSoundEffect::setMuted(bool muted)

Legt fest, ob die Wiedergabe dieses Soundeffekts stummgeschaltet werden soll.

Ist ` muted ` auf `true` gesetzt, wird die Wiedergabe stummgeschaltet (unterdrückt); andernfalls erfolgt die Wiedergabe mit der aktuell festgelegten Lautstärke ` volume()`.

Hinweis: Setter -Funktion für die Eigenschaft ` muted`.

Siehe auch isMuted().

void QSoundEffect::setSource(const QUrl &url)

Lege die aktuell abzuspielende URL auf url fest.

Hinweis: Setter -Funktion für die Eigenschaft „ source “.

Siehe auch „ source()“.

void QSoundEffect::setVolume(float volume)

Stellt die Lautstärke der Soundeffekte auf „ volume “ ein.

Die Lautstärke wird linear von 0.0 (Stille) bis 1.0 (volle Lautstärke) skaliert. Werte außerhalb dieses Bereichs werden begrenzt.

Die Standardlautstärke beträgt 1.0.

Lautstärkeregler in der Benutzeroberfläche sollten in der Regel nichtlinear skaliert werden. Die Verwendung einer logarithmischen Skala führt beispielsweise zu linearen Änderungen der wahrgenommenen Lautstärke, was ein Benutzer normalerweise von einem Lautstärkeregler erwartet. Weitere Details finden Sie unter ` QtAudio::convertVolume()`.

Hinweis: Setter -Funktion für die Eigenschaft ` volume`.

Siehe auch volume().

QUrl QSoundEffect::source() const

Gibt die URL der aktuell abzuspielenden Quelle zurück

Hinweis: Getter -Funktion für die Eigenschaft „source“.

Siehe auch „ setSource()“.

[signal] void QSoundEffect::sourceChanged()

Das Signal „ sourceChanged “ wird ausgelöst, wenn die Quelle geändert wurde.

Hinweis: Notifier -Signal für die Eigenschaft „ source “.

QSoundEffect::Status QSoundEffect::status() const

Gibt den aktuellen Status dieses Soundeffekts zurück.

Hinweis: Getter -Funktion für die Eigenschaft „status“.

[signal] void QSoundEffect::statusChanged()

Das Signal „ statusChanged “ wird ausgelöst, wenn sich die Eigenschaft „status“ geändert hat.

Hinweis: Notifier -Signal für die Eigenschaft „ status “.

[slot] void QSoundEffect::stop()

Die aktuelle Wiedergabe anhalten.

[static] QStringList QSoundEffect::supportedMimeTypes()

Gibt eine Liste der für diese Plattform unterstützten MIME-Typen zurück.

float QSoundEffect::volume() const

Gibt die aktuelle Lautstärke dieses Soundeffekts zurück, von 0,0 (stumm) bis 1,0 (maximale Lautstärke).

Hinweis: Getter -Funktion für die Eigenschaft „volume“.

Siehe auch „ setVolume()“.

[signal] void QSoundEffect::volumeChanged()

Das Signal „ volumeChanged “ wird ausgelöst, wenn sich die Lautstärke geändert hat.

Hinweis: Benachrichtigungssignal für die Eigenschaft „ volume “.

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