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
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
Signale
| void | audioDeviceChanged() |
| void | loadedChanged() |
| void | loopCountChanged() |
| void | loopsRemainingChanged() |
| void | mutedChanged() |
| void | playingChanged() |
| void | sourceChanged() |
| void | statusChanged() |
| void | volumeChanged() |
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
| Konstante | Wert | Beschreibung |
|---|---|---|
QSoundEffect::Infinite | -2 | Wird als Parameter für ` setLoopCount()` verwendet, um eine Endlosschleife zu erzeugen |
enum QSoundEffect::Status
| Konstante | Wert | Beschreibung |
|---|---|---|
QSoundEffect::Null | 0 | Es wurde keine Quelle festgelegt oder die Quelle ist null. |
QSoundEffect::Loading | 1 | Der „ SoundEffect “ versucht, die Quelle zu laden. |
QSoundEffect::Ready | 2 | Die Quelle ist geladen und bereit zur Wiedergabe. |
QSoundEffect::Error | 3 | Wä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:
| void | loopCountChanged() |
[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:
| void | loopsRemainingChanged() |
muted : bool
Diese Eigenschaft ermöglicht die Steuerung der Stummschaltung. Bei dem Wert „ true “ wird dieser Effekt stummgeschaltet.
Zugriffsfunktionen:
Benachrichtigungssignal:
| void | mutedChanged() |
[read-only] playing : bool
Diese Eigenschaft gibt an, ob der Soundeffekt gerade abgespielt wird oder nicht.
Zugriffsfunktionen:
| bool | isPlaying() const |
Benachrichtigungssignal:
| void | playingChanged() |
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:
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:
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.