QAudioBuffer Class

Die Klasse QAudioBuffer repräsentiert eine Sammlung von Audio-Samples mit einem bestimmten Format und einer bestimmten Sample-Rate. Mehr...

Kopfzeile: #include <QAudioBuffer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake: QT += multimedia

Öffentliche Typen

Öffentliche Funktionen

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)

Detaillierte Beschreibung

QAudioBuffer wird von der Klasse QAudioDecoder verwendet, um dekodierte Audiodaten an die Anwendung zu übergeben. Ein Audiopuffer enthält Daten in einer bestimmten QAudioFormat, die mit format() abgefragt werden können. Er ist außerdem mit Timing- und Dauerinformationen versehen.

Um auf die im Puffer gespeicherten Daten zuzugreifen, verwenden Sie die Methoden data() oder constData().

Audiopuffer werden explizit gemeinsam genutzt, in den meisten Fällen sollten Sie detach() aufrufen, bevor Sie die Daten ändern.

Dokumentation der Mitgliedstypen

QAudioBuffer::F32M

Dies ist eine vordefinierte Spezialisierung für ein 32-Bit-Float-Mono-Sample.

QAudioBuffer::F32S

Dies ist eine vordefinierte Spezialisierung für ein 32-Bit-Float-Stereosample.

QAudioBuffer::S16M

Dies ist eine vordefinierte Spezialisierung für ein vorzeichenbehaftetes 16-Bit-Monosample. i

QAudioBuffer::S16S

Dies ist eine vordefinierte Spezialisierung für ein vorzeichenbehaftetes 16-Bit-Stereosample. Jeder Kanal ist ein vorzeichenbehafteter Kurzschluss.

QAudioBuffer::S32M

Dies ist eine vordefinierte Spezialisierung für ein vorzeichenbehaftetes 32-Bit-Monosample.

QAudioBuffer::S32S

Dies ist eine vordefinierte Spezialisierung für ein siged 32-Bit-Stereosample.

QAudioBuffer::U8M

Dies ist eine vordefinierte Spezialisierung für ein vorzeichenloses 8-Bit-Mono-Sample.

QAudioBuffer::U8S

Dies ist eine vordefinierte Spezialisierung für ein nicht signiertes 8-Bit-Stereosample.

Dokumentation der Mitgliedsfunktionen

[noexcept] QAudioBuffer::QAudioBuffer()

Erstellen Sie einen neuen, leeren, ungültigen Puffer.

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

Erzeugt einen neuen Audiopuffer aus dem übergebenen data, im angegebenen format. Das Format bestimmt, wie die Anzahl und Größe der Samples aus data interpretiert werden.

Wenn die angegebene data kein ganzzahliges Vielfaches der berechneten Framegröße ist, werden die überschüssigen Daten nicht verwendet.

Dieser Audiopuffer kopiert den Inhalt von data.

startTime (in Mikrosekunden) gibt an, wann dieser Puffer im Stream beginnt. Wenn dieser Puffer nicht Teil eines Streams ist, setzen Sie ihn auf -1.

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

Erzeugt einen neuen Audiopuffer mit Platz für numFrames Frames des angegebenen format. Die einzelnen Samples werden mit den Standardwerten für das Format initialisiert.

startTime (in Mikrosekunden) gibt an, wann dieser Puffer im Stream beginnt. Wenn dieser Puffer nicht Teil eines Streams ist, setzen Sie ihn auf -1.

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

Erzeugt einen neuen Audiopuffer aus other. Audiopuffer werden explizit gemeinsam genutzt, Sie sollten detach() für den Puffer aufrufen, um eine Kopie zu erstellen, die dann geändert werden kann.

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

Konstruiert einen QAudioBuffer durch Verschieben von other.

[noexcept] QAudioBuffer::~QAudioBuffer()

Zerstört diesen Audiopuffer.

[noexcept] qsizetype QAudioBuffer::byteCount() const

Gibt die Größe dieses Puffers in Bytes zurück.

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

Gibt einen Zeiger auf die Daten dieses Puffers zurück. Sie können ihn nur lesen.

Diese Methode ist der const-Version von data() vorzuziehen, um unnötiges Kopieren zu vermeiden.

Beachten Sie, dass das Format des Audiopuffers nicht überprüft wird - dies ist lediglich eine Komfortfunktion.

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

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

Gibt einen Zeiger auf die Daten dieses Puffers zurück. Sie können die Daten über den zurückgegebenen Zeiger ändern.

Da QAudioBuffer -Objekte explizit gemeinsam genutzt werden, sollten Sie normalerweise detach() aufrufen, bevor Sie die Daten über diese Funktion ändern.

Beachten Sie, dass das Format des Audiopuffers nicht überprüft wird - dies ist lediglich eine Komfortfunktion.

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

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

Gibt einen Zeiger auf die Daten dieses Puffers zurück. Sie können ihn nur lesen.

Sie sollten eher die Funktion constData() verwenden, um ein versehentliches Kopieren in die Tiefe zu verhindern.

Beachten Sie, dass das Format des Audiopuffers nicht überprüft wird - dies ist lediglich eine Komfortfunktion.

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

void QAudioBuffer::detach()

Trennt diesen Audiopuffer von anderen Kopien, die möglicherweise Daten mit ihm teilen.

[noexcept] qint64 QAudioBuffer::duration() const

Gibt die Dauer des Tons in diesem Puffer in Mikrosekunden zurück.

Dies hängt von der format() und der frameCount() ab.

[noexcept] QAudioFormat QAudioBuffer::format() const

Gibt die format dieses Puffers zurück.

Mehrere Eigenschaften dieses Formats beeinflussen, wie duration() oder byteCount() aus frameCount() berechnet werden.

[noexcept] qsizetype QAudioBuffer::frameCount() const

Gibt die Anzahl der vollständigen Audio-Frames in diesem Puffer zurück.

Ein Audio-Frame ist ein verschachtelter Satz von einem Sample pro Kanal zum gleichen Zeitpunkt.

[noexcept] bool QAudioBuffer::isValid() const

Gibt true zurück, wenn dies ein gültiger Puffer ist. Ein gültiger Puffer enthält mehr als null Bilder und hat ein gültiges Format.

[noexcept] qsizetype QAudioBuffer::sampleCount() const

Gibt die Anzahl der Samples in diesem Puffer zurück.

Wenn das Format dieses Puffers mehrere Kanäle hat, umfasst diese Zahl alle Kanäle. Das bedeutet, dass ein Stereopuffer mit insgesamt 1000 Samples 500 linke Samples und 500 rechte Samples (verschachtelt) hat, und diese Funktion gibt 1000 zurück.

Siehe auch frameCount().

[noexcept] qint64 QAudioBuffer::startTime() const

Gibt die Zeit in einem Stream zurück, zu der dieser Puffer beginnt (in Mikrosekunden).

Wenn dieser Puffer nicht Teil eines Streams ist, wird -1 zurückgegeben.

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

Tauscht den Audiopuffer mit other aus.

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

Bewegt sich other in diese QAudioBuffer.

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

Weist diesem den Puffer other zu.

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