Sur cette page

QAudioDecoder Class

La classe QAudioDecoder implémente le décodage audio. Plus d'informations...

En-tête : #include <QAudioDecoder>
CMake : find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake : QT += multimedia
Hérite : QObject
Statut : Préliminaire

Cette classe est en cours de développement et peut être modifiée.

Types publics

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

Propriétés

Fonctions publiques

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

Emplacements publics

void start()
void stop()

Signaux

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()

Description détaillée

La classe QAudioDecoder est une classe de haut niveau pour le décodage des fichiers audio. Elle est similaire à la classe QMediaPlayer, sauf que l'audio est renvoyé par le biais de cette API au lieu d'être acheminé directement vers le matériel audio.

Voir également QAudioBuffer.

Documentation sur les types de membres

enum QAudioDecoder::Error

Définit une condition d'erreur du lecteur multimédia.

ConstanteValeurDescription de l'erreur
QAudioDecoder::NoError0Aucune erreur ne s'est produite.
QAudioDecoder::ResourceError1Une ressource multimédia n'a pas pu être résolue.
QAudioDecoder::FormatError2Le format d'une ressource multimédia n'est pas pris en charge.
QAudioDecoder::AccessDeniedError3Les autorisations nécessaires à la lecture d'une ressource multimédia ne sont pas disponibles.
QAudioDecoder::NotSupportedError4QAudioDecoder n'est pas pris en charge sur cette plate-forme

Documentation sur les propriétés

[read-only] bufferAvailable : bool

Cette propriété indique si une mémoire tampon audio décodée est disponible

Fonctions d'accès :

bool bufferAvailable() const

Signal du notificateur :

void bufferAvailableChanged(bool available)

[read-only] error : QString

Renvoie une description lisible par l'homme de l'erreur en cours, ou une chaîne vide s'il n'y a pas d'erreur.

Fonctions d'accès :

QString errorString() const

[read-only] isDecoding : bool

true si le décodeur est en cours d'exécution et décode des données audio.

Fonctions d'accès :

bool isDecoding() const

Signal de notification :

void isDecodingChanged(bool)

source : QUrl

Cette propriété contient le nom du fichier actif décodé par l'objet décodeur.

Fonctions d'accès :

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

Signal Notificateur :

void sourceChanged()

Member Function Documentation

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

Construire une instance de QAudioDecoder avec parent.

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

Détruit l'objet décodeur audio.

QAudioFormat QAudioDecoder::audioFormat() const

Renvoie le format audio sur lequel le décodeur est réglé.

Note : Ce format peut être différent du format des échantillons décodés, si le format audio a été réglé sur un format invalide.

Voir aussi setAudioFormat() et formatChanged().

bool QAudioDecoder::bufferAvailable() const

Retourne true si un tampon est disponible pour être lu, et false dans le cas contraire. S'il n'y a pas de tampon disponible, l'appel à la fonction read() renverra un tampon non valide.

Remarque : fonction Getter pour la propriété bufferAvailable.

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

Signale la disponibilité (si available est vrai) d'un nouveau tampon.

Si available est faux, aucun tampon n'est disponible.

Note : Signal de notification pour la propriété bufferAvailable.

Voir également bufferAvailable() et bufferReady().

[signal] void QAudioDecoder::bufferReady()

Signale qu'un nouveau tampon audio décodé peut être lu.

Voir aussi read() et bufferAvailable().

qint64 QAudioDecoder::duration() const

Renvoie la durée totale (en millisecondes) du flux audio ou -1 si elle n'est pas disponible.

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

Signale que l'estimation de duration des données décodées a changé.

Voir également positionChanged().

QAudioDecoder::Error QAudioDecoder::error() const

Renvoie l'état d'erreur actuel du site QAudioDecoder.

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

Signale qu'une condition error s'est produite.

Note : Ce signal est surchargé. Pour se connecter à ce signal :

// 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 */ });
Pour plus d'exemples et d'approches, voir Connexion aux signaux surchargés.

Voir aussi errorString().

[signal] void QAudioDecoder::finished()

Signale que le décodage s'est terminé avec succès. Si le décodage échoue, un signal d'erreur est émis à la place.

Voir aussi start(), stop() et error().

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

Signale que le format audio actuel du décodeur est passé à format.

Voir également audioFormat() et setAudioFormat().

bool QAudioDecoder::isSupported() const

Retourne true si le décodage audio est pris en charge sur cette plateforme.

qint64 QAudioDecoder::position() const

Renvoie la position (en millisecondes) du dernier tampon lu par le décodeur ou -1 si aucun tampon n'a été lu.

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

Signale que le site position du décodeur a changé.

Voir également durationChanged().

QAudioBuffer QAudioDecoder::read() const

Lire un tampon à partir du décodeur, s'il y en a un de disponible. Renvoie un tampon invalide s'il n'y a pas de tampons décodés actuellement disponibles, ou en cas d'échec. Dans les deux cas, cette fonction ne bloque pas.

Vous devez répondre au signal bufferReady() ou vérifier la fonction bufferAvailable() avant d'appeler read() pour être sûr d'obtenir des données utiles.

void QAudioDecoder::setAudioFormat(const QAudioFormat &format)

Réglez le format audio souhaité pour les échantillons décodés sur format.

Cette propriété ne peut être définie que lorsque le décodeur est arrêté. La définition de cette propriété à d'autres moments sera ignorée.

Si le décodeur ne prend pas en charge ce format, error() sera réglé sur FormatError.

Si vous ne spécifiez pas de format, le format de l'audio décodé sera utilisé. Dans le cas contraire, une conversion de format sera appliquée.

Si vous souhaitez réinitialiser le format décodé à celui du fichier audio d'origine, vous pouvez spécifier une adresse invalide format.

Attention : La définition d'un format audio souhaité n'est pas encore prise en charge par le backend Android. Cela fonctionne avec le backend FFMPEG par défaut.

Voir aussi audioFormat().

void QAudioDecoder::setSource(const QUrl &fileName)

Définit le nom du fichier audio actuel à fileName.

Lorsque cette propriété est définie, tout décodage en cours est arrêté et les tampons audio sont supprimés.

Vous ne pouvez spécifier qu'un nom de fichier source ou une source QIODevice. La définition de l'un désactivera l'autre.

Remarque : fonction de définition de la propriété source.

Voir également source().

void QAudioDecoder::setSourceDevice(QIODevice *device)

Définit l'audio actuel QIODevice à device.

Lorsque cette propriété est définie, tout décodage en cours est arrêté et les tampons audio sont supprimés.

Vous ne pouvez spécifier qu'un nom de fichier source ou une source QIODevice. La définition de l'un désactivera l'autre.

Voir également sourceDevice().

QUrl QAudioDecoder::source() const

Renvoie le nom du fichier à décoder. Si setSourceDevice a été appelé, ce nom sera vide.

Note : Fonction Getter pour la source de la propriété.

Voir aussi setSource().

[signal] void QAudioDecoder::sourceChanged()

Signale que la source de courant du décodeur a changé.

Note : Signal de notification pour la propriété source.

Voir également source() et sourceDevice().

QIODevice *QAudioDecoder::sourceDevice() const

Renvoie la source courante QIODevice, si elle a été définie. Si setSource() a été appelé, ce sera une nullptr.

Voir aussi setSourceDevice().

[slot] void QAudioDecoder::start()

Démarre le décodage de la ressource audio.

Au fur et à mesure que les données sont décodées, le signal bufferReady() est émis lorsque suffisamment de données ont été décodées. L'appel à read() renvoie alors un tampon audio sans blocage.

Si vous appelez read() avant qu'un tampon ne soit prêt, un tampon invalide sera renvoyé, toujours sans blocage.

Voir aussi read().

[slot] void QAudioDecoder::stop()

Arrête le décodage audio. Si vous appelez à nouveau start(), le décodage reprendra depuis le début.

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