QAudioDecoder Class

Die Klasse QAudioDecoder implementiert die Dekodierung von Audio. Mehr...

Kopfzeile: #include <QAudioDecoder>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
Vererbt: QObject
Status: Vorläufig

Diese Klasse befindet sich in der Entwicklung und kann sich noch ändern.

Öffentliche Typen

enum Error { NoError, ResourceError, FormatError, AccessDeniedError, NotSupportedError }

Eigenschaften

Öffentliche Funktionen

QAudioDecoder(QObject *parent = nullptr)
virtual ~QAudioDecoder() override
QAudioFormat audioFormat() const
bool bufferAvailable() const
qint64 duration() const
QAudioDecoder::Error error() const
QString errorString() const
bool isDecoding() const
bool isSupported() const
qint64 position() const
QAudioBuffer read() const
void setAudioFormat(const QAudioFormat &format)
void setSource(const QUrl &fileName)
void setSourceDevice(QIODevice *device)
QUrl source() const
QIODevice *sourceDevice() const

Öffentliche Slots

void start()
void stop()

Signale

void bufferAvailableChanged(bool available)
void bufferReady()
void durationChanged(qint64 duration)
void error(QAudioDecoder::Error error)
void finished()
void formatChanged(const QAudioFormat &format)
void isDecodingChanged(bool)
void positionChanged(qint64 position)
void sourceChanged()

Detaillierte Beschreibung

Die Klasse QAudioDecoder ist eine High-Level-Klasse zur Dekodierung von Audio-Mediendateien. Sie ähnelt der Klasse QMediaPlayer mit dem Unterschied, dass die Audiodaten über diese API zurückgegeben und nicht direkt an die Audiohardware weitergeleitet werden.

Siehe auch QAudioBuffer.

Dokumentation der Mitgliedstypen

enum QAudioDecoder::Error

Definiert eine Fehlerbedingung des Media Players.

KonstanteWertBeschreibung
QAudioDecoder::NoError0Es ist kein Fehler aufgetreten.
QAudioDecoder::ResourceError1Eine Medienressource konnte nicht aufgelöst werden.
QAudioDecoder::FormatError2Das Format einer Medienressource wird nicht unterstützt.
QAudioDecoder::AccessDeniedError3Für die Wiedergabe einer Medienressource liegen nicht die entsprechenden Berechtigungen vor.
QAudioDecoder::NotSupportedError4QAudioDecoder wird auf dieser Plattform nicht unterstützt

Eigenschaft Dokumentation

[read-only] bufferAvailable : const bool

Diese Eigenschaft gibt an, ob ein dekodierter Audiopuffer vorhanden ist

Zugriffsfunktionen:

bool bufferAvailable() const

Anmelder-Signal:

void bufferAvailableChanged(bool available)

[read-only] error : const QString

Gibt eine menschenlesbare Beschreibung des aktuellen Fehlers zurück, oder eine leere Zeichenkette, wenn kein Fehler vorliegt.

Zugriffsfunktionen:

QString errorString() const

[read-only] isDecoding : const bool

true wenn der Decoder gerade läuft und Audiodaten dekodiert.

Zugriffsfunktionen:

bool isDecoding() const

Anzeigesignal:

void isDecodingChanged(bool)

source : QUrl

Diese Eigenschaft enthält den aktiven Dateinamen, der vom Decoder-Objekt dekodiert wird.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void sourceChanged()

Member Function Dokumentation

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

Konstruieren Sie eine QAudioDecoder-Instanz mit parent.

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

Zerstört das Audio-Decoder-Objekt.

QAudioFormat QAudioDecoder::audioFormat() const

Gibt das Audioformat zurück, auf das der Decoder eingestellt ist.

Hinweis: Dies kann sich von dem Format der dekodierten Samples unterscheiden, wenn das Audioformat auf ein ungültiges Format gesetzt wurde.

Siehe auch setAudioFormat() und formatChanged().

bool QAudioDecoder::bufferAvailable() const

Gibt true zurück, wenn ein Puffer zum Lesen verfügbar ist, andernfalls false. Wenn kein Puffer verfügbar ist, wird beim Aufruf der Funktion read() ein ungültiger Puffer zurückgegeben.

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

[signal] void QAudioDecoder::bufferAvailableChanged(bool available)

Signalisiert die Verfügbarkeit (wenn available wahr ist) eines neuen Puffers.

Wenn available falsch ist, sind keine Puffer verfügbar.

Hinweis: Benachrichtigungssignal für die Eigenschaft bufferAvailable.

Siehe auch bufferAvailable() und bufferReady().

[signal] void QAudioDecoder::bufferReady()

Signalisiert, dass ein neuer dekodierter Audiopuffer zum Lesen verfügbar ist.

Siehe auch read() und bufferAvailable().

qint64 QAudioDecoder::duration() const

Gibt die Gesamtdauer (in Millisekunden) des Audiostroms zurück oder -1, falls nicht verfügbar.

[signal] void QAudioDecoder::durationChanged(qint64 duration)

Signalisiert, dass sich die geschätzte duration der dekodierten Daten geändert hat.

Siehe auch positionChanged().

QAudioDecoder::Error QAudioDecoder::error() const

Gibt den aktuellen Fehlerstatus der QAudioDecoder zurück.

[signal] void QAudioDecoder::error(QAudioDecoder::Error error)

Signalisiert, dass eine error Bedingung aufgetreten ist.

Hinweis: Das Signal error ist in dieser Klasse überladen. Um sich mit diesem Signal zu verbinden, indem man die Funktionszeigersyntax verwendet, bietet Qt einen praktischen Helfer, um den Funktionszeiger zu erhalten, wie in diesem Beispiel gezeigt:

connect(audioDecoder, QOverload<QAudioDecoder::Error>::of(&QAudioDecoder::error),
    [=](QAudioDecoder::Error error){ /* ... */ });

Siehe auch errorString().

[signal] void QAudioDecoder::finished()

Signalisiert, dass die Dekodierung erfolgreich abgeschlossen wurde. Wenn die Dekodierung fehlschlägt, wird stattdessen ein Fehlersignal ausgegeben.

Siehe auch start(), stop(), und error().

[signal] void QAudioDecoder::formatChanged(const QAudioFormat &format)

Signalisiert, dass das aktuelle Audioformat des Decoders zu format gewechselt hat.

Siehe auch audioFormat() und setAudioFormat().

bool QAudioDecoder::isSupported() const

Gibt true zurück, wenn die Audio-Dekodierung auf dieser Plattform unterstützt wird.

qint64 QAudioDecoder::position() const

Gibt die Position (in Millisekunden) des letzten vom Decoder gelesenen Puffers zurück oder -1, wenn keine Puffer gelesen wurden.

[signal] void QAudioDecoder::positionChanged(qint64 position)

Signalisiert, dass sich die aktuelle position des Decoders geändert hat.

Siehe auch durationChanged().

QAudioBuffer QAudioDecoder::read() const

Liest einen Puffer aus dem Decoder, falls ein solcher vorhanden ist. Gibt einen ungültigen Puffer zurück, wenn derzeit keine dekodierten Puffer verfügbar sind, oder im Fehlerfall. In beiden Fällen wird diese Funktion nicht blockiert.

Sie sollten entweder auf das Signal bufferReady() reagieren oder die Funktion bufferAvailable() überprüfen, bevor Sie read() aufrufen, um sicherzustellen, dass Sie nützliche Daten erhalten.

void QAudioDecoder::setAudioFormat(const QAudioFormat &format)

Stellen Sie das gewünschte Audioformat für dekodierte Samples auf format ein.

Diese Eigenschaft kann nur eingestellt werden, wenn der Decoder angehalten ist. Die Einstellung dieser Eigenschaft zu anderen Zeiten wird ignoriert.

Wenn der Decoder dieses Format nicht unterstützt, wird error() auf FormatError gesetzt.

Wenn Sie kein Format angeben, wird das Format des dekodierten Audios selbst verwendet. Andernfalls wird eine Formatkonvertierung durchgeführt.

Wenn Sie das dekodierte Format auf das der ursprünglichen Audiodatei zurücksetzen möchten, können Sie ein ungültiges format angeben.

Achtung! Die Einstellung eines gewünschten Audioformats wird vom Android-Backend noch nicht unterstützt. Es funktioniert jedoch mit dem Standard-FFMPEG-Backend.

Siehe auch audioFormat().

void QAudioDecoder::setSource(const QUrl &fileName)

Setzt den aktuellen Audiodateinamen auf fileName.

Wenn diese Eigenschaft gesetzt ist, wird die laufende Dekodierung angehalten und alle Audiopuffer werden verworfen.

Sie können nur entweder einen Quelldateinamen oder eine Quelle QIODevice angeben. Das Setzen der einen Eigenschaft hebt das Setzen der anderen auf.

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

Siehe auch source().

void QAudioDecoder::setSourceDevice(QIODevice *device)

Setzt das aktuelle Audio QIODevice auf device.

Wenn diese Eigenschaft gesetzt ist, wird die aktuelle Dekodierung angehalten und alle Audiopuffer werden verworfen.

Sie können nur entweder einen Quelldateinamen oder eine Quelle QIODevice angeben. Wird eine Eigenschaft gesetzt, wird die andere aufgehoben.

Siehe auch sourceDevice().

QUrl QAudioDecoder::source() const

Gibt den aktuellen zu dekodierenden Dateinamen zurück. Wenn setSourceDevice aufgerufen wurde, ist dieser Wert leer.

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

Siehe auch setSource().

[signal] void QAudioDecoder::sourceChanged()

Signalisiert, dass sich die Stromquelle des Decoders geändert hat.

Hinweis: Meldesignal für die Eigenschaft source.

Siehe auch source() und sourceDevice().

QIODevice *QAudioDecoder::sourceDevice() const

Gibt die aktuelle Quelle QIODevice zurück, falls eine gesetzt wurde. Wenn setSource() aufgerufen wurde, ist dies eine Nullptr.

Siehe auch setSourceDevice().

[slot] void QAudioDecoder::start()

Beginnt mit der Dekodierung der Audioressource.

Während die Daten dekodiert werden, wird das Signal bufferReady() ausgegeben, wenn genügend Daten dekodiert wurden. Der Aufruf von read() gibt dann einen Audiopuffer zurück, ohne zu blockieren.

Wenn Sie read() aufrufen, bevor ein Puffer bereit ist, wird ein ungültiger Puffer zurückgegeben, ebenfalls ohne zu blockieren.

Siehe auch read().

[slot] void QAudioDecoder::stop()

Stoppt die Dekodierung von Audio. Wenn Sie start() erneut aufrufen, wird die Dekodierung von Anfang an fortgesetzt.

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