[英]Pyaudio & Threading leads to RuntimeError: Set changed size during iteration
我在Raspberry Pi上通过Pyaudio录制音频时遇到问题。 我的代码的目的是记录每10s到20s的10s长的小音频片段。
为此,我为记录器启动了自己的线程:
# Create collect beat thread.
recorder_thread = Thread(target=beat_analyzer, args=(recorder_queue,))
recorder_thread.start()
它使用另一个类来控制时间(recorder_queue)。 录制本身发生在beat_analyzer中。 在某种程度上,这可以正常工作……但是大约一两个小时后,我得到以下异常:
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 505, in run
self.__target(*self.__args, **self.__kwargs)
File "/home/pi/beatmap/bm-client/lib_recorder.py", line 134, in beat_analyzer
py_audio.terminate()
File "/usr/lib/pymodules/python2.7/pyaudio.py", line 644, in terminate
for stream in self._streams:
RuntimeError: Set changed size during iteration
由于我没有遍历某些东西(至少我对此一无所知),所以我想知道问题出在哪里。 如果可能是Pyaudio内部需要解决的问题? 提示非常感谢。
在尝试了不同的chunk_count设置之后,并且阅读了laike9m的文章之后,我决定使用另一个库。 在这种情况下,Alsaaudio-从那时起,它就像一个烟囱。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.