Sur cette page

QAudioBuffer Class

La classe QAudioBuffer représente un ensemble d'échantillons audio d'un format et d'une fréquence d'échantillonnage spécifiques. En savoir plus...

En-tête : #include <QAudioBuffer>
CMake : find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake : QT += multimedia

Types publics

Fonctions publiques

QAudioBuffer()
QAudioBuffer(const QByteArray &data, const QAudioFormat &format, qint64 startTime = -1)
QAudioBuffer(int numFrames, const QAudioFormat &format, qint64 startTime = -1)
QAudioBuffer(const QAudioBuffer &other)
QAudioBuffer(QAudioBuffer &&other)
~QAudioBuffer()
qsizetype byteCount() const
const T *constData() const
T *data()
const T *data() const
void detach()
qint64 duration() const
QAudioFormat format() const
qsizetype frameCount() const
bool isValid() const
qsizetype sampleCount() const
qint64 startTime() const
void swap(QAudioBuffer &other)
QAudioBuffer &operator=(QAudioBuffer &&other)
QAudioBuffer &operator=(const QAudioBuffer &other)

Description détaillée

QAudioBuffer est utilisé par la classe QAudioDecoder pour transmettre les données audio décodées à l'application. Un tampon audio contient des données dans une certaine for QAudioFormat, qui peut être interrogée à l'aide de la méthode format(). Il est également associé à des informations de synchronisation et de durée.

Pour accéder aux données stockées dans le tampon, utilisez les méthodes data() ou constData().

Les tampons audio sont explicitement partagés ; dans la plupart des cas, vous devez appeler detach() avant de modifier les données.

Documentation sur les types de membres

QAudioBuffer::F32M

Il s'agit d'une spécialisation prédéfinie pour un échantillon mono en format flottant 32 bits.

QAudioBuffer::F32S

Il s'agit d'une spécialisation prédéfinie pour un échantillon stéréo en format flottant 32 bits.

QAudioBuffer::S16M

Il s'agit d'une spécialisation prédéfinie pour un échantillon mono signé de 16 bits. i

QAudioBuffer::S16S

Il s'agit d'une spécialisation prédéfinie pour un échantillon stéréo signé de 16 bits. Chaque canal est un entier court signé.

QAudioBuffer::S32M

Il s'agit d'une spécialisation prédéfinie pour un échantillon mono signé de 32 bits.

QAudioBuffer::S32S

Il s'agit d'une spécialisation prédéfinie pour un échantillon stéréo signé de 32 bits.

QAudioBuffer::U8M

Il s'agit d'une spécialisation prédéfinie pour un échantillon mono de 8 bits sans signe.

QAudioBuffer::U8S

Il s'agit d'une spécialisation prédéfinie pour un échantillon stéréo de 8 bits non signé.

Documentation des fonctions membres

[noexcept] QAudioBuffer::QAudioBuffer()

Créer un nouveau tampon vide et non valide.

QAudioBuffer::QAudioBuffer(const QByteArray &data, const QAudioFormat &format, qint64 startTime = -1)

Crée un nouveau tampon audio à partir de l'data fournie, dans l'format spécifiée. Le format déterminera la manière dont le nombre et la taille des échantillons sont interprétés à partir de l'data.

Si le nombre d'échantillons fourni ( data ) n'est pas un multiple entier de la taille de trame calculée, les données excédentaires ne seront pas utilisées.

Ce tampon audio copiera le contenu de data.

startTime (en microsecondes) indique à quel moment ce tampon commence dans le flux. Si ce tampon ne fait pas partie d’un flux, définissez-le sur -1.

QAudioBuffer::QAudioBuffer(int numFrames, const QAudioFormat &format, qint64 startTime = -1)

Crée un nouveau tampon audio pouvant contenir numFrames trames du format format spécifié. Les échantillons individuels seront initialisés aux valeurs par défaut du format.

startTime (en microsecondes) indique à quel moment ce tampon commence dans le flux. Si ce tampon ne fait pas partie d’un flux, définissez-le sur -1.

[noexcept] QAudioBuffer::QAudioBuffer(const QAudioBuffer &other)

Crée un nouveau tampon audio à partir de ` other`. Les tampons audio sont explicitement partagés ; vous devez appeler la fonction ` detach()` sur le tampon pour en créer une copie qui pourra ensuite être modifiée.

[constexpr noexcept default] QAudioBuffer::QAudioBuffer(QAudioBuffer &&other)

Crée un objet `QAudioBuffer` à partir de ` other`.

[noexcept] QAudioBuffer::~QAudioBuffer()

Supprime ce tampon audio.

[noexcept] qsizetype QAudioBuffer::byteCount() const

Renvoie la taille de ce tampon, en octets.

template <typename T> const T *QAudioBuffer::constData() const

Renvoie un pointeur vers les données de ce tampon. Ce pointeur est en lecture seule.

Cette méthode est préférable à la version const de data() afin d’éviter toute copie inutile.

Notez qu'aucune vérification n'est effectuée sur le format du tampon audio : il s'agit simplement d'une fonction de commodité.

// With a 16bit sample buffer:
const quint16 *data = buffer->constData<quint16>();

template <typename T> T *QAudioBuffer::data()

Renvoie un pointeur vers les données de ce tampon. Vous pouvez modifier ces données via le pointeur renvoyé.

Les objets de type ` QAudioBuffer ` étant explicitement partagés, il est généralement recommandé d'appeler ` detach()` avant de modifier les données via cette fonction.

Notez qu’aucune vérification n’est effectuée sur le format du tampon audio : il s’agit simplement d’une fonction de commodité.

// With a 16bit sample buffer:
quint16 *data = buffer->data<quint16>(); // May cause deep copy

template <typename T> const T *QAudioBuffer::data() const

Renvoie un pointeur vers les données de ce tampon. Vous ne pouvez que les lire.

Il est recommandé d'utiliser la fonction ` constData()` plutôt que celle-ci afin d'éviter toute copie profonde accidentelle.

Notez qu'aucune vérification n'est effectuée sur le format du tampon audio : il s'agit simplement d'une fonction de commodité.

// With a 16bit sample const buffer:
const quint16 *data = buffer->data<quint16>();

void QAudioBuffer::detach()

Détache ce tampon audio des autres copies susceptibles de partager des données avec lui.

[noexcept] qint64 QAudioBuffer::duration() const

Renvoie la durée du contenu audio de ce tampon, en microsecondes.

Cela dépend des fonctions ` format()` et ` frameCount()`.

[noexcept] QAudioFormat QAudioBuffer::format() const

Renvoie l'format de ce tampon.

Plusieurs propriétés de ce format influencent la manière dont les fonctions ` duration()` ou ` byteCount()` sont calculées à partir de la fonction ` frameCount()`.

[noexcept] qsizetype QAudioBuffer::frameCount() const

Renvoie le nombre de trames audio complètes contenues dans ce tampon.

Une trame audio est un ensemble entrelacé d'un échantillon par canal correspondant à un même instant.

[noexcept] bool QAudioBuffer::isValid() const

Renvoie « true » si le tampon est valide. Un tampon valide contient plus d'une trame et est au format valide.

[noexcept] qsizetype QAudioBuffer::sampleCount() const

Renvoie le nombre d'échantillons contenus dans ce tampon.

Si le format de ce tampon comporte plusieurs canaux, ce nombre inclut tous les canaux. Cela signifie qu'un tampon stéréo contenant 1 000 échantillons au total comportera 500 échantillons de gauche et 500 échantillons de droite (entrelacés), et que cette fonction renverra 1 000.

Voir également frameCount().

[noexcept] qint64 QAudioBuffer::startTime() const

Renvoie l'instant dans un flux à partir duquel ce tampon commence (en microsecondes).

Si ce tampon ne fait pas partie d'un flux, cette fonction renvoie -1.

[noexcept] void QAudioBuffer::swap(QAudioBuffer &other)

Permute le tampon audio avec other.

[noexcept] QAudioBuffer &QAudioBuffer::operator=(QAudioBuffer &&other)

Déplace « other » vers « QAudioBuffer ».

QAudioBuffer &QAudioBuffer::operator=(const QAudioBuffer &other)

Attribue le tampon « other » à cet élément.

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