PySide6.QtMultimedia.QAudioBuffer

class QAudioBuffer

QAudioBuffer 类表示具有特定格式和采样率的音频样本集合。更多

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

QAudioBufferQAudioDecoder 类用来将解码后的音频数据传递给应用程序。音频缓冲区包含特定 QAudioFormat 的数据,可以使用 format() 查询。它还带有时间和持续时间信息的标签。

要访问存储在缓冲区中的数据,请使用 data()constData() 方法。

音频缓冲区是显式共享的,在大多数情况下,您应该在修改数据之前调用detach()

__init__()

创建一个新的、空的、无效的缓冲区。

__init__(other)
Parameters:

其他QAudioBuffer

other创建一个新的音频缓冲区。音频缓冲区是显式共享的,你应该在缓冲区上调用detach()来制作一个可以修改的副本。

__init__(data, format[, startTime=-1])
Parameters:

从提供的data中创建一个新的音频缓冲区,使用给定的format。该格式将决定如何从data中解释样本的数量和大小。

如果提供的data不是计算出的帧大小的整数倍,多余的数据将不会被使用。

这个音频缓冲区将复制data的内容。

startTime(以微秒为单位)表示此缓冲区在流中的开始时间。如果此缓冲区不是流的一部分,则将其设置为-1。

__init__(numFrames, format[, startTime=-1])
Parameters:
  • numFrames – int

  • formatQAudioFormat

  • startTime – int

创建一个新的音频缓冲区,为给定的format格式的numFrames帧分配空间。单个样本将初始化为该格式的默认值。

startTime(以微秒为单位)表示此缓冲区在流中的开始时间。如果此缓冲区不是流的一部分,则将其设置为-1。

byteCount()
Return type:

整数

返回此缓冲区的大小,以字节为单位。

duration()
Return type:

整数

返回此缓冲区中音频的持续时间,以微秒为单位。

这取决于format()frameCount()

format()
Return type:

QAudioFormat

返回此缓冲区的format

此格式的多个属性会影响如何从frameCount()计算duration()byteCount()

frameCount()
Return type:

整数

返回此缓冲区中完整音频帧的数量。

音频帧是同一时间点上每个通道的一个样本的交错集合。

isValid()
Return type:

布尔

如果这是一个有效的缓冲区,则返回true。一个有效的缓冲区包含超过零帧的数据,并且具有有效的格式。

sampleCount()
Return type:

整数

返回此缓冲区中的样本数量。

如果此缓冲区的格式具有多个通道,则此计数包括所有通道。这意味着一个总共有1000个样本的立体声缓冲区将有500个左样本和500个右样本(交错),并且此函数将返回1000。

另请参阅

frameCount()

startTime()
Return type:

整数

返回流中此缓冲区开始的时间(以微秒为单位)。

如果此缓冲区不是流的一部分,将返回-1。

swap(other)
Parameters:

其他QAudioBuffer

将音频缓冲区与 other 交换。