QAudioBuffer Class

QAudioBuffer 클래스는 특정 형식과 샘플 속도를 가진 오디오 샘플 컬렉션을 나타냅니다. 더 보기...

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

공용 타입

공용 함수

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)

상세 설명

QAudioBuffer는 QAudioDecoder 클래스에서 디코딩된 오디오 데이터를 애플리케이션에 전달하는 데 사용됩니다. 오디오 버퍼는 format()를 사용하여 쿼리할 수 있는 특정 QAudioFormat 의 데이터를 포함합니다. 또한 타이밍 및 지속 시간 정보로 태그가 지정됩니다.

버퍼에 저장된 데이터에 액세스하려면 data() 또는 constData() 메서드를 사용합니다.

오디오 버퍼는 명시적으로 공유되므로 대부분의 경우 데이터를 수정하기 전에 detach()를 호출해야 합니다.

멤버 유형 문서

QAudioBuffer::F32M

이것은 32비트 플로트 모노 샘플에 대해 미리 정의된 전문화입니다.

QAudioBuffer::F32S

이것은 32비트 플로트 스테레오 샘플을 위한 미리 정의된 전문화입니다.

QAudioBuffer::S16M

이것은 서명된 16비트 모노 샘플에 대해 미리 정의된 전문화입니다.

QAudioBuffer::S16S

이것은 서명된 스테레오 16비트 샘플에 대해 미리 정의된 전문화입니다. 각 채널은 부호화된 쇼트입니다.

QAudioBuffer::S32M

이것은 서명된 32비트 모노 샘플에 대해 미리 정의된 전문화입니다.

QAudioBuffer::S32S

이것은 서명된 32비트 스테레오 샘플에 대해 미리 정의된 전문화입니다.

QAudioBuffer::U8M

이것은 부호화되지 않은 8비트 모노 샘플에 대해 미리 정의된 전문화입니다.

QAudioBuffer::U8S

이것은 서명되지 않은 8비트 스테레오 샘플에 대한 미리 정의된 전문화입니다.

멤버 함수 문서

[noexcept] QAudioBuffer::QAudioBuffer()

비어 있는 유효하지 않은 새 버퍼를 만듭니다.

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

제공된 data 에서 주어진 format 에 새 오디오 버퍼를 생성합니다. 형식에 따라 data 에서 샘플의 수와 크기가 해석되는 방식이 결정됩니다.

제공된 data 이 계산된 프레임 크기의 정수 배수가 아닌 경우 초과 데이터는 사용되지 않습니다.

이 오디오 버퍼는 data 의 내용을 복사합니다.

startTime (마이크로초 단위)는 이 버퍼가 스트림에서 시작되는 시점을 나타냅니다. 이 버퍼가 스트림의 일부가 아닌 경우 -1로 설정합니다.

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

주어진 formatnumFrames 프레임을 위한 공간으로 새 오디오 버퍼를 생성합니다. 개별 샘플은 해당 형식의 기본값으로 초기화됩니다.

startTime (마이크로초 단위)는 스트림에서 이 버퍼가 시작되는 시점을 나타냅니다. 이 버퍼가 스트림의 일부가 아닌 경우 -1로 설정합니다.

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

other 에서 새 오디오 버퍼를 만듭니다. 오디오 버퍼는 명시적으로 공유되므로 버퍼에서 detach()를 호출하여 복사본을 만든 다음 수정할 수 있어야 합니다.

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

other 에서 이동하여 QAudioBuffer를 구축합니다.

[noexcept] QAudioBuffer::~QAudioBuffer()

이 오디오 버퍼를 삭제합니다.

[noexcept] qsizetype QAudioBuffer::byteCount() const

이 버퍼의 크기를 바이트 단위로 반환합니다.

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

이 버퍼의 데이터에 대한 포인터를 반환합니다. 읽기만 가능합니다.

이 메서드는 불필요한 복사를 방지하기 위해 data()의 const 버전보다 선호됩니다.

오디오 버퍼의 형식에 대한 검사는 수행되지 않으며, 이는 단순히 편의성을 위한 기능이라는 점에 유의하세요.

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

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

이 버퍼의 데이터에 대한 포인터를 반환합니다. 반환된 포인터를 통해 데이터를 수정할 수 있습니다.

QAudioBuffer 객체는 명시적으로 공유되므로 일반적으로 이 함수를 통해 데이터를 수정하기 전에 detach()를 호출해야 합니다.

오디오 버퍼의 형식에 대한 검사는 수행되지 않으며, 이는 단순히 편의성을 위한 함수라는 점에 유의하세요.

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

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

이 버퍼의 데이터에 대한 포인터를 반환합니다. 읽기만 가능합니다.

실수로 딥 복사를 방지하려면 이 함수 대신 constData() 함수를 사용해야 합니다.

오디오 버퍼의 형식에 대한 검사는 수행되지 않으며, 이는 단순히 편의성을 위한 기능일 뿐이라는 점에 유의하세요.

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

void QAudioBuffer::detach()

이 오디오 버퍼와 데이터를 공유할 수 있는 다른 복사본에서 이 오디오 버퍼를 분리합니다.

[noexcept] qint64 QAudioBuffer::duration() const

이 버퍼에 있는 오디오의 지속 시간을 마이크로초 단위로 반환합니다.

이는 format() 및 frameCount()에 따라 달라집니다.

[noexcept] QAudioFormat QAudioBuffer::format() const

이 버퍼의 format 를 반환합니다.

이 형식의 여러 속성은 frameCount()에서 duration() 또는 byteCount()가 계산되는 방식에 영향을 줍니다.

[noexcept] qsizetype QAudioBuffer::frameCount() const

이 버퍼에 있는 완전한 오디오 프레임의 수를 반환합니다.

오디오 프레임은 동일한 순간에 대해 채널당 하나의 샘플로 구성된 인터리브 세트입니다.

[noexcept] bool QAudioBuffer::isValid() const

유효한 버퍼인 경우 true를 반환합니다. 유효한 버퍼에는 0개 이상의 프레임과 유효한 형식이 포함되어 있습니다.

[noexcept] qsizetype QAudioBuffer::sampleCount() const

이 버퍼에 있는 샘플 수를 반환합니다.

이 버퍼의 형식에 여러 채널이 있는 경우 이 개수에는 모든 채널이 포함됩니다. 즉, 총 1000개의 샘플이 있는 스테레오 버퍼에는 왼쪽 샘플 500개와 오른쪽 샘플 500개(인터리브)가 있으며, 이 함수는 1000을 반환합니다.

frameCount()도 참조하세요 .

[noexcept] qint64 QAudioBuffer::startTime() const

스트림에서 이 버퍼가 시작되는 시간(마이크로초 단위)을 반환합니다.

이 버퍼가 스트림의 일부가 아닌 경우 -1을 반환합니다.

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

오디오 버퍼를 other 로 바꿉니다.

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

otherQAudioBuffer 으로 이동합니다.

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

여기에 other 버퍼를 할당합니다.

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