QtAudio Namespace

Der QtAudio Namespace 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
QtAudio::UnderrunError3Audiodaten werden nicht schnell genug in das Audiogerät eingespeist
QtAudio::FatalError4Es ist ein nicht behebbarer Fehler aufgetreten, das Audiogerät ist zur Zeit nicht verwendbar.

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::IdleState3Die übergebene QIODevice hat keine Daten und der Puffer des Audiosystems ist leer. Dieser Zustand wird nach dem Aufruf von start() gesetzt, solange keine Audiodaten zur Verarbeitung verfügbar sind.

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.