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
- bufferAvailable : bool
- error : QString
- isDecoding : bool
- source : QUrl
Ö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
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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QAudioDecoder::NoError | 0 | Es ist kein Fehler aufgetreten. |
QAudioDecoder::ResourceError | 1 | Eine Medienressource konnte nicht aufgelöst werden. |
QAudioDecoder::FormatError | 2 | Das Format einer Medienressource wird nicht unterstützt. |
QAudioDecoder::AccessDeniedError | 3 | Es liegen keine entsprechenden Berechtigungen vor, um eine Medienressource abzuspielen. |
QAudioDecoder::NotSupportedError | 4 | QAudioDecoder 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:
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 */ }); 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.