QSoundEffect Class

Die Klasse QSoundEffect ermöglicht die Wiedergabe von Soundeffekten mit geringer Latenz. Mehr...

Kopfzeile: #include <QSoundEffect>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
In QML: SoundEffect
Vererbt: 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()

Detaillierte Beschreibung

Diese Klasse ermöglicht es Ihnen, unkomprimierte Audiodateien (typischerweise WAV-Dateien) mit geringerer Latenz abzuspielen. Sie eignet sich für "Feedback"-Sounds als Reaktion auf Benutzeraktionen (z.B. virtuelle Tastatursounds, positives oder negatives Feedback für Popup-Dialoge oder Spielsounds). Wenn eine niedrige Latenzzeit nicht wichtig ist, sollten Sie stattdessen die Klasse QMediaPlayer verwenden, da sie eine größere Anzahl von Medienformaten unterstützt und weniger ressourcenintensiv ist.

Dieses Beispiel zeigt, wie ein schleifenförmiger, etwas 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, so dass die gesamte Analyse und Vorbereitung im Voraus erfolgen kann und nur bei Bedarf ausgelöst wird. Dies trägt zu einer geringeren Latenz bei der Audiowiedergabe 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 geringerer Latenz zu erreichen, kann die Plattform die Anzahl der gleichzeitig spielenden Soundeffekte begrenzen.

Dokumentation der Mitgliedstypen

enum QSoundEffect::Loop

KonstanteWertBeschreibung
QSoundEffect::Infinite-2Wird als Parameter für setLoopCount() für Endlosschleifen verwendet

enum QSoundEffect::Status

KonstanteWertBeschreibung
QSoundEffect::Null0Es wurde keine Quelle festgelegt oder die Quelle ist null.
QSoundEffect::Loading1Die 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.

Eigenschaft Dokumentation

audioDevice : QAudioDevice

Gibt die Instanz QAudioDevice zurück.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

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 SoundEffect.Infinite, um Endlosschleifen zu aktivieren.

Der Wert kann geändert werden, während der Soundeffekt abgespielt wird; in diesem Fall werden die verbleibenden Schleifen auf den neuen Wert aktualisiert.

Zugriffsfunktionen:

int loopCount() const
void setLoopCount(int loopCount)

Melder-Signal:

[read-only] loopsRemaining : const int

Diese Eigenschaft enthält die Anzahl der verbleibenden Schleifen, bevor der Soundeffekt von selbst stoppt, oder QSoundEffect::Infinite, wenn dies in loops eingestellt wurde.

Zugriffsfunktionen:

int loopsRemaining() const

Benachrichtigungssignal:

muted : bool

Diese Eigenschaft bietet eine Möglichkeit, die Stummschaltung zu steuern. Ein Wert von true schaltet diesen Effekt stumm.

Zugriffsfunktionen:

bool isMuted() const
void setMuted(bool muted)

Melder-Signal:

void mutedChanged()

[read-only] playing : const bool

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

Zugriffsfunktionen:

bool isPlaying() const

Melder-Signal:

source : QUrl

Diese Eigenschaft enthält die URL für den abzuspielenden Sound. Damit SoundEffect versuchen kann, die Quelle zu laden, muss die URL existieren und die Anwendung muss Leseberechtigung im angegebenen Verzeichnis haben.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void sourceChanged()

[read-only] status : const Status

Diese Eigenschaft zeigt den aktuellen Status des Soundeffekts aus der Aufzählung QSoundEffect::Status an.

Zugriffsfunktionen:

QSoundEffect::Status status() const

Melder-Signal:

void statusChanged()

volume : float

Diese Eigenschaft bestimmt die Lautstärke der Wiedergabe des Soundeffekts, von 0,0 (Stille) bis 1,0 (volle Lautstärke).

Zugriffsfunktionen:

float volume() const
void setVolume(float volume)

Melder-Signal:

void volumeChanged()

Member Function Dokumentation

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

Erzeugt einen QSoundEffect mit der angegebenen parent.

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

Erzeugt einen QSoundEffect mit dem angegebenen audioDevice und parent.

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

Zerstört diesen Soundeffekt.

bool QSoundEffect::isLoaded() const

Gibt zurück, ob der Soundeffekt das Laden von source() abgeschlossen hat.

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 ausgesendet, wenn sich der Ladezustand geändert hat.

int QSoundEffect::loopCount() const

Gibt die Gesamtzahl der Wiederholungen dieses Soundeffekts zurück, bevor er gestoppt wird.

Siehe die Methode loopsRemaining() für die Anzahl der verbleibenden Schleifen.

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

Siehe auch setLoopCount().

[signal] void QSoundEffect::loopCountChanged()

Das Signal loopCountChanged wird ausgegeben, wenn sich die ursprüngliche Anzahl der Schleifen geändert hat.

Hinweis: Meldersignal für die Eigenschaft loops.

[signal] void QSoundEffect::loopsRemainingChanged()

Das Signal loopsRemainingChanged wird ausgegeben, wenn sich die verbleibende Anzahl der Schleifen geändert hat.

Hinweis: Meldersignal für die Eigenschaft loopsRemaining.

[signal] void QSoundEffect::mutedChanged()

Das Signal mutedChanged wird ausgegeben, wenn sich der Zustand der Stummschaltung geändert hat.

Hinweis: Melder-Signal für die Eigenschaft muted.

[slot] void QSoundEffect::play()

Startet die Wiedergabe des Soundeffekts, wobei der Effekt so oft wiederholt wird, wie in der Eigenschaft loops angegeben.

[signal] void QSoundEffect::playingChanged()

Das Signal playingChanged wird ausgegeben, wenn sich die Abspieleigenschaft geändert hat.

Hinweis: Meldesignal für die Eigenschaft playing.

void QSoundEffect::setLoopCount(int loopCount)

Stellen Sie die Gesamtzahl der Wiederholungen für diesen Soundeffekt auf loopCount ein.

Wenn Sie die Schleifenanzahl auf 0 oder 1 setzen, wird der Soundeffekt nur einmal abgespielt; geben Sie QSoundEffect::Infinite ein, um ihn unbegrenzt zu wiederholen. Die Anzahl der Schleifen kann während der Wiedergabe des Soundeffekts geändert werden. In diesem Fall werden die verbleibenden Schleifen auf die neue 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.

Wenn muted true ist, wird die Wiedergabe stummgeschaltet, andernfalls erfolgt die Wiedergabe mit der aktuell angegebenen volume().

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

Siehe auch isMuted().

void QSoundEffect::setSource(const QUrl &url)

Setzen Sie die aktuelle URL zum Abspielen auf url.

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

Siehe auch source().

void QSoundEffect::setVolume(float volume)

Setzt die Lautstärke des Soundeffekts auf volume.

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

Die Standardlautstärke ist 1.0.

Die Lautstärkeregler der Benutzeroberfläche sollten normalerweise nicht linear skaliert werden. Die Verwendung einer logarithmischen Skala führt beispielsweise zu linearen Änderungen der wahrgenommenen Lautstärke, was der Benutzer normalerweise von einem Lautstärkeregler erwarten würde. Siehe QtAudio::convertVolume() für weitere Details.

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

Siehe auch volume().

QUrl QSoundEffect::source() const

Gibt die URL der aktuellen Quelle für die Wiedergabe zurück

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

Siehe auch setSource().

[signal] void QSoundEffect::sourceChanged()

Das Signal sourceChanged wird ausgesendet, wenn die Quelle geändert wurde.

Hinweis: Meldersignal 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 ausgesendet, wenn sich die Statuseigenschaft geändert hat.

Hinweis: Meldersignal für die Eigenschaft status.

[slot] void QSoundEffect::stop()

Aktuelle Wiedergabe stoppen.

[static] QStringList QSoundEffect::supportedMimeTypes()

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

float QSoundEffect::volume() const

Gibt die aktuelle Lautstärke dieses Soundeffekts zurück, von 0.0 (leise) 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 ausgegeben, wenn sich die Lautstärke geändert hat.

Hinweis: Meldersignal für die Eigenschaft volume.

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