QAudioBuffer 类
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 |
const T * | data() const |
T * | data() |
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=(const QAudioBuffer &other) |
QAudioBuffer & | operator=(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 &数据, const QAudioFormat &格式, qint64 startTime = -1)
从提供的数据和指定的格式创建一个新的音频缓冲区。格式将决定如何从数据中解释样本的数量和大小。
如果提供的数据不是计算出的帧大小的整数倍,则额外的数据将不会使用。
此音频缓冲区将复制数据的内容。
startTime(以微秒为单位)表示此缓冲区在流中的开始时间。如果不属于流的一部分,则将其设置为-1。
QAudioBuffer::QAudioBuffer(int numFrames, const QAudioFormat &格式, qint64 startTime = -1)
创建一个新的音频缓冲区,用于存储给定格式的numFrames帧。单个样本将初始化为格式的默认值。
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
返回缓冲区的尺寸,以字节为单位。
模板 <typename T> const T *QAudioBuffer::constData() const
返回对缓冲区数据的指针。您可以只读取它。
与 data() 的常量版本相比,此方法更受欢迎,可以防止不必要的复制。
请注意,不对音频缓冲区的格式进行检查 - 这是一个辅助函数。
模板 <typename T> const T *QAudioBuffer::data() const
返回对缓冲区数据的指针。您可以只读取它。
应使用 constData() 函数而不是此函数,以防止意外深复制。
请注意,不对音频缓冲区的格式进行检查 - 这是一个辅助函数。
模板 <typename T> T *QAudioBuffer::data()
返回对缓冲区数据的指针。您可以通过返回的指针修改数据。
由于 QAudioBuffer 对象是显式共享的,因此通常在通过此函数修改数据之前调用 detach()。
请注意,不对音频缓冲区的格式进行检查 - 这是一个辅助函数。
void QAudioBuffer::detach()
将此音频缓冲区从可能与其共享数据的其他副本中分离出来。
[noexcept]
qint64 QAudioBuffer::duration() const
返回此缓冲区中音频的持续时间,以微秒为单位。
这取决于 format() 和 frameCount()。
[noexcept]
QAudioFormat QAudioBuffer::format() const
返回此缓冲区的 格式。
此格式的几个属性影响如何从 frameCount() 计算出 duration() 或 byteCount()。
[noexcept]
qsizetype QAudioBuffer::frameCount() const
返回此缓冲区中完整音频帧的数量。
一个音频帧是同一时间间隔内每个通道的一个样本的交织集。
[noexcept]
bool QAudioBuffer::isValid() const
如果这是一个有效缓冲区,则返回 true。一个有效缓冲区在其内部有多于零的帧和一个有效格式。
[noexcept]
qsizetype QAudioBuffer::sampleCount() const
返回此缓冲区中样本的数量。
如果此缓冲区的格式包含多个通道,则此计数包括所有通道。这意味着一个包含1000个总样本的立体声缓冲区将有500个左样本和500个右样本(交错),此函数将返回1000。
另请参阅frameCount()。
[noexcept]
qint64 QAudioBuffer::startTime() const
返回此缓冲区在流中的起始时间(以微秒为单位)。
如果此缓冲区不属于流的一部分,则将返回-1。
[noexcept]
void QAudioBuffer::swap(QAudioBuffer &other)
与other交换音频缓冲区。
QAudioBuffer &QAudioBuffer::operator=(const QAudioBuffer &other)
将other缓冲区赋值给此。
[noexcept]
QAudioBuffer &QAudioBuffer::operator=(QAudioBuffer &&other)
将其他other移动到这个QAudioBuffer。
© 2024 Qt公司有限公司。此处包含的文档贡献享有其各自的版权。本文件所述的文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款许可的。Qt及相应的标志是芬兰及/或其他国家Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。