QtAudio Namespace

Der QtAudio-Namensraum enthält Enums, die von den Audioklassen verwendet werden. Mehr...

Kopfzeile: #include <QtAudio>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia

Typen

enum Error { NoError, OpenError, IOError, UnderrunError, FatalError }
enum State { ActiveState, SuspendedState, StoppedState, IdleState }
enum VolumeScale { LinearVolumeScale, CubicVolumeScale, LogarithmicVolumeScale, DecibelVolumeScale }

Funktionen

float convertVolume(float volume, QtAudio::VolumeScale from, QtAudio::VolumeScale to)

Detaillierte Beschreibung

Typ-Dokumentation

enum QtAudio::Error

KonstanteWertBeschreibung
QtAudio::NoError0Es sind keine Fehler aufgetreten
QtAudio::OpenError1Beim Öffnen des Audiogeräts ist ein Fehler aufgetreten
QtAudio::IOError2Beim Lesen/Schreiben des Audiogeräts ist ein Fehler aufgetreten. Dies kann z.B. passieren, wenn ein externes Audio-Interface nicht angeschlossen ist.
QtAudio::UnderrunError3Die Audiodaten werden nicht schnell genug an das Audiogerät weitergeleitet
QtAudio::FatalError4Ein nicht behebbarer Fehler ist aufgetreten, das Audiogerät ist zu diesem Zeitpunkt nicht nutzbar.

enum QtAudio::State

KonstanteWertBeschreibung
QtAudio::ActiveState0Audiodaten werden gerade verarbeitet. Dieser Zustand wird nach dem Aufruf von start() gesetzt, solange Audiodaten zur Verarbeitung verfügbar sind.
QtAudio::SuspendedState1Der Audio-Stream befindet sich in einem angehaltenen Zustand. Wird nach dem Aufruf von suspend() gesetzt oder wenn ein anderer Stream die Kontrolle über das Audiogerät übernimmt. Im letzteren Fall gibt ein Aufruf von resume die Kontrolle über das Audiogerät an diesen Stream zurück. Dies sollte normalerweise nur auf Anfrage des Benutzers geschehen.
QtAudio::StoppedState2Das Audiogerät ist geschlossen und verarbeitet keine Audiodaten
QtAudio::IdleState3Dieser Zustand zeigt an, dass das Audiosystem aufgrund eines Pufferungsproblems vorübergehend inaktiv ist. Bei einem QAudioSink bedeutet IdleState, dass nicht genügend Daten von QIODevice zum Lesen verfügbar sind. Bei QAudioSource tritt IdleState ein, wenn der Ringpuffer, der den QIODevice speist, voll wird. In diesem Fall werden alle neuen Audiodaten, die von der Audioschnittstelle ankommen, verworfen, bis die Anwendung aus dem QIODevice liest, wodurch Platz im Puffer frei wird.

enum QtAudio::VolumeScale

Diese Aufzählung definiert die verschiedenen Lautstärkeskalen.

KonstanteWertBeschreibung
QtAudio::LinearVolumeScale0Lineare Skala. 0.0 (0%) ist Stille und 1.0 (100%) ist volle Lautstärke. Alle Qt Multimedia Klassen, die über eine Audiolautstärke verfügen, verwenden eine lineare Skala.
QtAudio::CubicVolumeScale1Kubische Skala. 0.0 (0%) ist Stille und 1.0 (100%) ist die volle Lautstärke.
QtAudio::LogarithmicVolumeScale2Logarithmische Skala. 0.0 (0%) ist Stille und 1.0 (100%) ist die volle Lautstärke. UI-Lautstärkeregler sollten normalerweise eine logarithmische Skala verwenden.
QtAudio::DecibelVolumeScale3Dezibel (dB, Amplitude) logarithmische Skala. -200 ist Stille und 0 ist volle Lautstärke.

Siehe auch QtAudio::convertVolume().

Funktion Dokumentation

float QtAudio::convertVolume(float volume, QtAudio::VolumeScale from, QtAudio::VolumeScale to)

Konvertiert ein Audio volume from eine Lautstärkeskala to eine andere und gibt das Ergebnis zurück.

Je nach Kontext werden unterschiedliche Skalen zur Darstellung der Lautstärke verwendet. Alle Qt Multimedia Klassen, die eine Audiolautstärke haben, verwenden eine lineare Skala. Der Grund dafür ist, dass die Lautstärke eines Lautsprechers durch Modulation seiner Spannung auf einer linearen Skala gesteuert wird. Das menschliche Ohr hingegen nimmt Lautstärke auf logarithmische Weise wahr. Die Verwendung einer logarithmischen Skala für Lautstärkeregler ist daher für die meisten Anwendungen geeignet. Die Dezibel-Skala ist von Natur aus logarithmisch und wird üblicherweise zur Definition von Schallpegeln verwendet. Die kubische Skala ist eine rechnerisch günstige Annäherung an eine logarithmische Skala und bietet mehr Kontrolle über niedrigere Lautstärkepegel.

Das folgende Beispiel zeigt, wie der Lautstärkewert eines Schiebereglers umgewandelt wird, bevor er an QMediaPlayer weitergegeben wird. Dadurch ist der wahrgenommene Anstieg der Lautstärke derselbe, wenn der Schieberegler von 20 auf 30 erhöht wird, wie wenn er von 50 auf 60 erhöht wird:

void applyVolume(int volumeSliderValue)
{
    // volumeSliderValue is in the range [0..100]

    qreal linearVolume = QtAudio::convertVolume(volumeSliderValue / qreal(100.0),
                                                QtAudio::LogarithmicVolumeScale,
                                                QtAudio::LinearVolumeScale);

    player.setVolume(qRound(linearVolume * 100));
}

Siehe auch VolumeScale, QAudioSink::setVolume(), QAudioSource::setVolume(), und QSoundEffect::setVolume().

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