Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在InputStream中,blocksize做什么?(音响设备)_Python_Callback_Python Sounddevice - Fatal编程技术网

Python 在InputStream中,blocksize做什么?(音响设备)

Python 在InputStream中,blocksize做什么?(音响设备),python,callback,python-sounddevice,Python,Callback,Python Sounddevice,我正在用sounddevice构建一个吉他调谐器GUI。这是我录制部分的代码: def流(自): 如果self.stream不是None: self.stream.close() self.stream=sd.InputStream( 通道=1,回调=self.callback,块大小=…) self.stream.start() 这是回调: #tunertools是另一个包含在数组上计算的函数的文件 def回调(indata、帧、时间、状态): 打印(indata) data=indata.

我正在用sounddevice构建一个吉他调谐器GUI。这是我录制部分的代码:

def流(自):
如果self.stream不是None:
self.stream.close()
self.stream=sd.InputStream(
通道=1,回调=self.callback,块大小=…)
self.stream.start()
这是回调:

#tunertools是另一个包含在数组上计算的函数的文件
def回调(indata、帧、时间、状态):
打印(indata)
data=indata.copy()
yin,*others=tunertools.yin(数据、帧)
音高=调谐器音高。平均音高(阴)
noteslist={k:v代表k,v在tunertools.notes()中]
注释=调谐otls.quantize(音调、注释列表值)
打印({v:k for(k,v)in noteslist.values()}[note])

现在,我正在终端中打印输出。我希望每录制4秒打印一次新输出。这意味着每4秒,回调函数应该启动一次。我该怎么做?更重要的是,我是否需要使用blocksize参数来执行此操作?

回调函数的调用速率由
blocksize
确定。如果将
blocksize
设置得更大,则调用回调的频率会降低

如果您希望以不同于调用回调的速率获取信息,可以查看示例,该示例使用单独的函数获取信息,并使用
queue.queue
进行通信


如果您只想在每次(比如第三次)调用回调时执行一些代码,只需使用一个全局计数器变量,并在回调中检查和递增它。

回调函数的调用速率由
blocksize
确定。如果将
blocksize
设置得更大,则调用回调的频率会降低。如果您希望以不同于调用回调的速率获取信息,可以查看示例,该示例使用单独的函数获取信息,并使用
队列。队列
用于它们之间的通信。好的,谢谢!将此作为答案发布,我将接受。