이 페이지에서

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 클래스에서 디코딩된 오디오 데이터를 애플리케이션에 전달하는 데 사용됩니다. 오디오 버퍼는 특정 QAudioFormat 에 데이터를 포함하며, 이 데이터는 format()를 사용하여 조회할 수 있습니다. 또한 타이밍 및 지속 시간 정보가 태그로 지정되어 있습니다.

버퍼 내에 저장된 데이터에 접근하려면 data() 또는 constData() 메서드를 사용하십시오.

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

멤버 유형 설명서

QAudioBuffer::F32M

이것은 32비트 부동소수점 모노 샘플을 위한 미리 정의된 특수화입니다.

QAudioBuffer::F32S

이것은 32비트 부동소수점 스테레오 샘플용으로 미리 정의된 전문 분야입니다.

QAudioBuffer::S16M

이것은 부호 있는 16비트 모노 샘플을 위한 미리 정의된 특화형입니다. i

QAudioBuffer::S16S

이것은 부호 있는 스테레오 16비트 샘플을 위한 미리 정의된 특수화입니다. 각 채널은 부호 있는 short형입니다.

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)

지정된 format 의 numFrames 프레임 분량을 저장할 수 있는 새로운 오디오 버퍼를 생성합니다. 개별 샘플은 해당 포맷의 기본값으로 초기화됩니다.

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

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

other 를 사용하여 새로운 오디오 버퍼를 생성합니다. 오디오 버퍼는 명시적으로 공유되므로, 수정할 수 있는 복사본을 만들려면 해당 버퍼에 대해 detach()를 호출해야 합니다.

[constexpr noexcept default] 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)

other 를 이 주소 QAudioBuffer 로 이동합니다.

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

other 버퍼를 이 객체에 할당합니다.

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