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(…)它不返回任何数据,而流是打开的,只在流停止时返回。 在得出这个结论之后,我开始寻找解决方案并进行更多的测试,但我什么也找不到,仅就记录而言,这个问题以前没有发生过(它像昨天一样开始) 我不记得在我的代码中做过任何更改
我也尝试过但没有成功的事情
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)