Auf dieser Seite

QAudioDecoder Class

Die Klasse „QAudioDecoder“ implementiert die Audiodekodierung. Mehr...

Header: #include <QAudioDecoder>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia
Erbt von: QObject
Status: Technologievorschau

Diese Klasse befindet sich in der Technologievorschau 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()

Ausführliche Beschreibung

Die Klasse „QAudioDecoder“ ist eine übergeordnete Klasse zum Dekodieren von Audiodateien. Sie ähnelt der Klasse „ QMediaPlayer “, mit dem Unterschied, dass der Ton über diese API zurückgegeben wird, anstatt direkt an die Audio-Hardware weitergeleitet zu werden.

Siehe auch „ QAudioBuffer “.

Dokumentation zu den Mitgliedstypen

enum QAudioDecoder::Error

Definiert einen Fehlerzustand 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::AccessDeniedError3Es liegen keine entsprechenden Berechtigungen vor, um eine Medienressource abzuspielen.
QAudioDecoder::NotSupportedError4QAudioDecoder wird auf dieser Plattform nicht unterstützt

Dokumentation zu den Eigenschaften

[read-only] bufferAvailable : bool

Diese Eigenschaft gibt an, ob ein dekodierter Audio-Puffer verfügbar ist

Zugriffsfunktionen:

bool bufferAvailable() const

Benachrichtigungssignal:

void bufferAvailableChanged(bool available)

[read-only] error : QString

Gibt eine für Menschen lesbare Beschreibung des aktuellen Fehlers zurück oder eine leere Zeichenkette, wenn kein Fehler vorliegt.

Zugriffsfunktionen:

QString errorString() const

[read-only] isDecoding : bool

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

Zugriffsfunktionen:

bool isDecoding() const

Benachrichtigungssignal:

void isDecodingChanged(bool)

source : QUrl

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

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void sourceChanged()

Dokumentation der Mitgliedsfunktionen

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

Erstellen Sie eine QAudioDecoder-Instanz mit ` parent`.

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

Löscht das Audio-Decoder-Objekt.

QAudioFormat QAudioDecoder::audioFormat() const

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

Hinweis: Dies kann vom Format der decodierten Samples abweichen, wenn das Audioformat auf ein ungültiges Format eingestellt wurde.

Siehe auch setAudioFormat() und formatChanged().

bool QAudioDecoder::bufferAvailable() const

Gibt „true“ zurück, wenn ein Puffer zum Lesen verfügbar ist, andernfalls „false“. Ist kein Puffer verfügbar, gibt der Aufruf der Funktion „ read()“ einen ungültigen Puffer zurück.

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

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

Zeigt an, ob (sofern „ available “ wahr ist) ein neuer Puffer verfügbar ist.

Ist „ available “ falsch, sind keine Puffer verfügbar.

Hinweis: Notifier -Signal für die Eigenschaft ` bufferAvailable`.

Siehe auch „ bufferAvailable()“ und „ bufferReady()“.

[signal] void QAudioDecoder::bufferReady()

Zeigt an, dass ein neuer dekodierter Audio-Puffer zum Auslesen bereitsteht.

Siehe auch „ read()“ und „ bufferAvailable()“.

qint64 QAudioDecoder::duration() const

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

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

Zeigt an, dass sich die geschätzte duration der decodierten Daten geändert hat.

Siehe auch „ positionChanged()“.

QAudioDecoder::Error QAudioDecoder::error() const

Gibt den aktuellen Fehlerstatus des „ QAudioDecoder “ zurück.

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

Zeigt an, dass ein „ error “-Zustand aufgetreten ist.

Hinweis: Dieses Signal ist überladen. So stellen Sie eine Verbindung zu diesem Signal her:

// Connect using qOverload:
connect(audioDecoder, qOverload(&QAudioDecoder::error),
        receiver, &ReceiverClass::slot);

// Or using a lambda:
connect(audioDecoder, qOverload(&QAudioDecoder::error),
        this, [](QAudioDecoder::Error error) { /* handle error */ });
Weitere Beispiele und Vorgehensweisen finden Sie unter „Anschließen an überladene Signale“.

Siehe auch ` errorString()`.

[signal] void QAudioDecoder::finished()

Zeigt an, 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)

Zeigt an, dass sich das aktuelle Audioformat des Decoders zu „ format “ geändert hat.

Siehe auch „ audioFormat()“ und „ setAudioFormat()“.

bool QAudioDecoder::isSupported() const

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

qint64 QAudioDecoder::position() const

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

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

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

Siehe auch „ durationChanged()“.

QAudioBuffer QAudioDecoder::read() const

Liest einen Puffer aus dem Decoder, sofern einer verfügbar ist. Gibt einen ungültigen Puffer zurück, wenn derzeit keine decodierten Puffer verfügbar sind oder wenn ein Fehler auftritt. In beiden Fällen blockiert diese Funktion nicht.

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

void QAudioDecoder::setAudioFormat(const QAudioFormat &format)

Legen Sie das gewünschte Audioformat für decodierte Samples auf „ format “ fest.

Diese Eigenschaft kann nur festgelegt werden, wenn der Decoder angehalten ist. Wird diese Eigenschaft zu einem anderen Zeitpunkt festgelegt, wird sie ignoriert.

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

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

Wenn Sie das decodierte Format auf das der ursprünglichen Audiodatei zurücksetzen möchten, können Sie einen ungültigen Wert für ` format` angeben.

Warnung: Die Festlegung eines gewünschten Audioformats wird vom Android-Backend noch nicht unterstützt. Beim Standard-FFMPEG-Backend funktioniert dies jedoch.

Siehe auch ` audioFormat()`.

void QAudioDecoder::setSource(const QUrl &fileName)

Setzt den Namen der aktuellen Audiodatei auf „ fileName “.

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

Sie können entweder einen Quelldateinamen oder eine Quell- QIODevice angeben. Wird eine der beiden Optionen festgelegt, wird die andere zurückgesetzt.

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

Siehe auch ` source()`.

void QAudioDecoder::setSourceDevice(QIODevice *device)

Setzt die aktuelle Audio- QIODevice e auf „ device “.

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

Sie können entweder einen Quelldateinamen oder eine Quell QIODevice angeben. Wird eine der beiden Optionen festgelegt, wird die andere zurückgesetzt.

Siehe auch ` sourceDevice()`.

QUrl QAudioDecoder::source() const

Gibt den Namen der aktuell zu dekodierenden Datei 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()

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

Hinweis: Benachrichtigungssignal für die Eigenschaft „ source “.

Siehe auch source() und sourceDevice().

QIODevice *QAudioDecoder::sourceDevice() const

Gibt den aktuellen Quell QIODevice zurück, sofern einer festgelegt wurde. Wurde setSource() aufgerufen, ist dies ein nullptr.

Siehe auch ` setSourceDevice()`.

[slot] void QAudioDecoder::start()

Beginnt mit der Dekodierung der Audio-Ressource.

Während die Daten dekodiert werden, wird das Signal „ bufferReady()“ ausgegeben, sobald genügend Daten dekodiert wurden. Der Aufruf von „ read()“ gibt dann ohne Blockierung einen Audio-Puffer zurück.

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

Siehe auch read().

[slot] void QAudioDecoder::stop()

Beende die Audiodekodierung. Durch erneuten Aufruf von ` start()` wird die Dekodierung von Anfang an fortgesetzt.

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