Sur cette page

QAudioDecoder Class

La classe QAudioDecoder permet de décoder des données audio. En savoir plus...

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

Cette classe est en avant-première technologique et est susceptible d'ê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 destinée au décodage de fichiers multimédias audio. Elle est similaire à la classe QMediaPlayer, à la différence près que le son est renvoyé via cette API plutôt que d'être acheminé directement vers le matériel audio.

Voir aussi QAudioBuffer.

Documentation sur les types de membres

enum QAudioDecoder::Error

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

ConstanteValeurDescription
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 plateforme

Documentation sur les propriétés

[read-only] bufferAvailable : bool

Cette propriété indique si un tampon audio décodé est disponible

Fonctions d'accès :

bool bufferAvailable() const

Signal de notification :

void bufferAvailableChanged(bool available)

[read-only] error : QString

Renvoie une description lisible par l'utilisateur de l'erreur actuelle, 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 actuellement en cours d'exécution et en train de décoder 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 en cours de décodage par l'objet décodeur.

Fonctions d'accès :

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

Signal de notification :

void sourceChanged()

Documentation des fonctions membres

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

Créez une instance de `QAudioDecoder` à l'aide de ` parent`.

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

Supprime l'objet décodeur audio.

QAudioFormat QAudioDecoder::audioFormat() const

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

Remarque : ce format peut être différent de celui des échantillons décodés si le format audio défini n'est pas valide.

Voir également setAudioFormat() et formatChanged().

bool QAudioDecoder::bufferAvailable() const

Renvoie « true » si un tampon est disponible en lecture, et « false » dans le cas contraire. Si aucun tampon n'est disponible, l'appel à la fonction ` read()` renverra un tampon non valide.

Remarque : fonction de lecture (getter ) pour la propriété bufferAvailable.

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

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

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

Remarque : signalde notification pour la propriété ` bufferAvailable`.

Voir également ` bufferAvailable()` et ` bufferReady()`.

[signal] void QAudioDecoder::bufferReady()

Indique qu'un nouveau tampon audio décodé est disponible pour être lu.

Voir également read() et bufferAvailable().

qint64 QAudioDecoder::duration() const

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

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

Indique que l'duration e estimée des données décodées a changé.

Voir également positionChanged().

QAudioDecoder::Error QAudioDecoder::error() const

Renvoie l'état d'erreur actuel de l'QAudioDecoder.

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

Indique qu'une condition d'error s s'est produite.

Remarque : ce signal est surchargé. Pour vous 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, consultez la section « Connexion à des signaux surchargés ».

Voir également ` errorString()`.

[signal] void QAudioDecoder::finished()

Indique que le décodage s'est terminé avec succès. En cas d'échec du décodage, un signal d'erreur est émis à la place.

Voir également start(), stop() et error().

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

Indique que le format audio actuel du décodeur est désormais « format ».

Voir également audioFormat() et setAudioFormat().

bool QAudioDecoder::isSupported() const

Renvoie « 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 à partir du décodeur ou -1 si aucun tampon n'a été lu.

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

Indique que l'position s actuelle du décodeur a changé.

Voir aussi durationChanged().

QAudioBuffer QAudioDecoder::read() const

Lit un tampon provenant du décodeur, s'il y en a un de disponible. Renvoie un tampon invalide s'il n'y a actuellement aucun tampon décodé disponible, ou en cas d'échec. Dans les deux cas, cette fonction ne se bloque pas.

Vous devez soit répondre au signal ` bufferReady()`, soit vérifier la fonction ` bufferAvailable()` avant d'appeler `read()` afin de vous assurer que vous obtenez des données utiles.

void QAudioDecoder::setAudioFormat(const QAudioFormat &format)

Définissez 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 à l'arrêt. Toute tentative de définition de cette propriété à d'autres moments sera ignorée.

Si le décodeur ne prend pas en charge ce format, la propriété ` error()` sera définie sur ` FormatError`.

Si vous ne spécifiez pas de format, c’est le format de l’audio décodé lui-même qui sera utilisé. Dans le cas contraire, une conversion de format sera appliquée.

Si vous souhaitez rétablir le format décodé à celui du fichier audio d'origine, vous pouvez spécifier une valeur ` format` non valide.

Avertissement : la définition d'un format audio souhaité n'est pas encore prise en charge sur le backend Android. Elle fonctionne toutefois avec le backend FFMPEG par défaut.

Voir également audioFormat().

void QAudioDecoder::setSource(const QUrl &fileName)

Définit le nom du fichier audio actuel sur « fileName ».

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

Vous ne pouvez spécifier qu’un nom de fichier source ou une adresse source QIODevice. La définition de l’un annule celle de l’autre.

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

Voir également source().

void QAudioDecoder::setSourceDevice(QIODevice *device)

Définit l'QIODevice audio actuel sur « device ».

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

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

Voir aussi sourceDevice().

QUrl QAudioDecoder::source() const

Renvoie le nom du fichier en cours à décoder. Si la fonction ` setSourceDevice ` a été appelée, cette valeur sera vide.

Remarque : fonctionde récupération pour la propriété source.

Voir aussi setSource().

[signal] void QAudioDecoder::sourceChanged()

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

Remarque : signalde notification pour la propriété source.

Voir également source() et sourceDevice().

QIODevice *QAudioDecoder::sourceDevice() const

Renvoie l'QIODevice de source actuelle, si celle-ci a été définie. Si la fonction ` setSource()` a été appelée, cette valeur sera un `nullptr`.

Voir également setSourceDevice().

[slot] void QAudioDecoder::start()

Lance le décodage de la ressource audio.

Au fur et à mesure du décodage des données, le signal ` bufferReady()` est émis dès qu'une quantité suffisante de données a été décodée. L'appel à ` read()` renvoie alors un tampon audio sans blocage.

Si vous appelez ` read()` avant qu’un tampon ne soit prêt, un tampon non valide sera renvoyé, là encore sans blocage.

Voir également read().

[slot] void QAudioDecoder::stop()

Arrêter le décodage audio. Un nouvel appel à la fonction start() relancera le décodage 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.