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
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() |
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
Konstante | Wert | Beschreibung |
---|---|---|
QSoundEffect::Infinite | -2 | Wird als Parameter für setLoopCount() für Endlosschleifen verwendet |
enum QSoundEffect::Status
Konstante | Wert | Beschreibung |
---|---|---|
QSoundEffect::Null | 0 | Es wurde keine Quelle festgelegt oder die Quelle ist null. |
QSoundEffect::Loading | 1 | Die 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. |
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:
void | loopCountChanged() |
[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:
void | loopsRemainingChanged() |
muted : bool
Diese Eigenschaft bietet eine Möglichkeit, die Stummschaltung zu steuern. Ein Wert von true
schaltet diesen Effekt stumm.
Zugriffsfunktionen:
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:
void | playingChanged() |
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:
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:
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.