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
- bufferAvailable : bool
- error : QString
- isDecoding : bool
- source : QUrl
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
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.
| Constante | Valeur | Description |
|---|---|---|
QAudioDecoder::NoError | 0 | Aucune erreur ne s'est produite. |
QAudioDecoder::ResourceError | 1 | Une ressource multimédia n'a pas pu être résolue. |
QAudioDecoder::FormatError | 2 | Le format d'une ressource multimédia n'est pas pris en charge. |
QAudioDecoder::AccessDeniedError | 3 | Les autorisations nécessaires à la lecture d'une ressource multimédia ne sont pas disponibles. |
QAudioDecoder::NotSupportedError | 4 | QAudioDecoder 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 :
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 */ }); 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.