Python 对象变量未更改
我希望我没有错过这个问题的任何明显答案,但我希望你能帮我解决我的一个小问题。 我目前正在用python编写一个程序来做一些音频处理和反馈预测。到目前为止,我有一个类,我希望以10毫秒的间隔运行,并在包含音频数据的缓冲区上工作。稍后,我会希望使用microfon的实时输入来填充缓冲区,但目前我只使用第二个类,每10毫秒将音频数据块流到缓冲区。至少这是它应该做的 我的流式处理类具有以下功能,它是在一个新线程中使用Python 对象变量未更改,python,variables,object,python-multithreading,Python,Variables,Object,Python Multithreading,我希望我没有错过这个问题的任何明显答案,但我希望你能帮我解决我的一个小问题。 我目前正在用python编写一个程序来做一些音频处理和反馈预测。到目前为止,我有一个类,我希望以10毫秒的间隔运行,并在包含音频数据的缓冲区上工作。稍后,我会希望使用microfon的实时输入来填充缓冲区,但目前我只使用第二个类,每10毫秒将音频数据块流到缓冲区。至少这是它应该做的 我的流式处理类具有以下功能,它是在一个新线程中使用 启动新线程(audioStreamer.streamAudio()) self.fee
启动新线程(audioStreamer.streamAudio())
self.feedbackPred
是对主类的引用,它每10ms对主方法使用一个计时器。这也行得通,但是,上面调用的audioStreamCallback
在我的操作中表现得很奇怪:
def audioStreamCallback(self, in_data, frame_count, time_info, status_flags):
print "chunk_s:", self.chunk_s
result = np.fromstring(in_data, dtype=np.float32)
if frame_count == self.chunk_s:
self.audioBuf = result
print "setting audiobuf size to chunk_s"
self.aduioBufSize = self.chunk_s
print "after setting, self.audioBufSize:", self.audioBufSize
忽略那些丑陋的调试打印和过于复杂的标题,我需要将该标题用于麦克风外壳。我的输出令人遗憾:
chunk_s: 160
setting audiobuf size to chunk_s
after setting, self.audioBufSize: 0
我希望你们中的一些人能够指出我做错了什么,即使使用这个最小的代码示例。有趣的是,一个更小的测试用例,它使用一个以特定间隔运行的函数和一个填充缓冲区的不同线程,对我来说效果很好
非常感谢你的帮助 问题是:
self.aduioBufSize = self.chunk_s
而恰恰是aduio..
。只是一个打字错误天哪,好的,非常感谢,只是意味着我完全失明了。与其浪费更多的时间去寻找,不如现在就感觉到自己受到了很多伤害!
self.aduioBufSize = self.chunk_s