Python pyaudio stream.read()不';在流停止之前不要返回数据

Python pyaudio stream.read()不';在流停止之前不要返回数据,python,pyaudio,Python,Pyaudio,我将非常详细,因此不缺少关于正在发生的事情的信息 我有一个名为Stream的类,它的主要功能是读取连接到PC的任何选定音频设备输出的数据,并将数据返回到另一个类(代码中尚未实现这一部分,但它只是用于上下文)。下面是Stream类: Stream.py 它在做什么: 首先,它接收一个设备对象(代码不是很重要。但是,如果需要,我可以编辑并添加它)。 Device对象有一些关于当前所选设备的信息(如设备默认采样率,频道,等等,如您在流中所看到的。uuu init_uu()。因此流类使用这些信息打开

我将非常详细,因此不缺少关于正在发生的事情的信息


我有一个名为Stream的类,它的主要功能是读取连接到PC的任何选定音频设备输出的数据,并将数据返回到另一个类(代码中尚未实现这一部分,但它只是用于上下文)。下面是Stream类:

Stream.py
它在做什么: 首先,它接收一个设备对象(代码不是很重要。但是,如果需要,我可以编辑并添加它)。 Device对象有一些关于当前所选设备的信息(如设备默认采样率频道,等等,如您在流中所看到的。uuu init_uu()。因此流类使用这些信息打开PyAudio.open(…)然后,它立即停止流,直到用户(有GUI)打开它


问题 Stream.read()方法它是由线程调用的,因此它保持运行、处理和实时返回数据。但是,当我调用Stream.start()并启动read方法时,同样的方法仍停留在以下行中:

data = self.stream.read(self.defaultFrames)
我在这个方法中添加了一个print语句,以查看数据流。但是,这个语句只有在停止流之后才会被调用,并且不会显示任何错误

输出 如您所见,流打开时不会打印任何数据。 查看此输出并经过几次测试后,我发现,self.stream.read(…)它不返回任何数据,而流是打开的,只在流停止时返回。 在得出这个结论之后,我开始寻找解决方案并进行更多的测试,但我什么也找不到,仅就记录而言,这个问题以前没有发生过(它像昨天一样开始) 我不记得在我的代码中做过任何更改


我也尝试过但没有成功的事情
  • 删除线程并正常调用Stream.read()
  • 重新安装PyAudio
  • 如果您需要任何其他信息,请在评论中告诉我。我已尽可能具体,如果我没有充分说明我的意思,请道歉。请告诉我,我将更新问题并解决问题。提前感谢

    data = self.stream.read(self.defaultFrames)
    
    2020-06-03 09:15:21,718 — LEDController.Stream.Stream - 57 — INFO — Stream Started
    2020-06-03 09:15:24,371 — LEDController.Stream.Stream - 65 — INFO — Stream Stopped
    (output of the print statement, it's quite long so I'll not put it here)