PyAudio python问题

PyAudio python问题,python,python-3.x,Python,Python 3.x,“块”是什么意思? 如果数据等于wf.readframes(CHUNK)为什么它在每次读取时都会再次读取? 我是否应该将数据写入流,然后关闭它?CHUNK是1024,因此可以用以下代码替换代码: CHUNK = 1024 data = wf.readframes(CHUNK) while data != '': stream.write(data) data = wf.readframes(CHUNK) 下面是正在发生的事情: 从wf读取1024字节的数据 如果数据不为空,

“块”是什么意思? 如果数据等于wf.readframes(CHUNK)为什么它在每次
读取时都会再次读取?

我是否应该将
数据写入流,然后关闭它?

CHUNK
是1024,因此可以用以下代码替换代码:

CHUNK = 1024

data = wf.readframes(CHUNK)

while data != '':
    stream.write(data)
    data = wf.readframes(CHUNK)
下面是正在发生的事情:

  • wf
    读取1024字节的数据
  • 如果数据不为空,则开始循环:
  • 将最近的字节写入
  • wf
    读取接下来的1024个字节
  • 重新开始循环

  • 所以,它基本上只是写出
    wf
    中包含的所有内容。碰巧的是,它以1024字节的段(如
    CHUNK
    所定义)读取数据

    将被1024替换。在本例中,它读取1024字节的音频块,将其写入流,然后再读取1024字节,直到没有任何内容可读取。它不应该是“data=wf.readframes(1024*i)”吗?因为每一次我们都应该读取下一个1024字节,不是每次都是前1024个字节吗?@user2483347我猜它正在消耗这些字节,所以它会传递下一个1024个字节,但我不确定-我没有使用PyAudio。
    data = wf.readframes(1024)
    
    while data != '':
        stream.write(data)
        data = wf.readframes(1024)