Python 在函数之间传递None变量
我基于sounddevice playrec()创建了一个播放和录制功能 见: 它们使用以下输入参数的方法Python 在函数之间传递None变量,python,function,python-3.x,Python,Function,Python 3.x,我基于sounddevice playrec()创建了一个播放和录制功能 见: 它们使用以下输入参数的方法 def playrec(data, samplerate=None, channels=None, dtype=None, out=None, input_mapping=None, output_mapping=None, blocking=False, **kwargs): 所以我想做同样的事情,把一些变量传递给默认函数 比如: 结果是
def playrec(data, samplerate=None, channels=None, dtype=None,
out=None, input_mapping=None, output_mapping=None, blocking=False,
**kwargs):
所以我想做同样的事情,把一些变量传递给默认函数
比如:
结果是此功能中断(它不播放和录制任何声音)。我没有得到一个错误。。。所以我测试了我在哪里休息,我发现了。函数启动前一行,一切正常。
spyder也不显示
None
所以我认为这与通过传递输入值有关 如果这些变量不是空的,我如何传递它们
- 方法或模块
提前感谢让我将我的评论表述为一个答案(有保留,因为我无法测试您的代码):
t
sd.playrc
调用的最后一个参数应该是**kwargs
,而不仅仅是kwargs
在注释之后,我的脚本中使用的方法似乎没有错。。。这可能是一个与python sounddevice相关的问题。 在PythonSoundDevice的github页面上,我看到关于同一主题可能存在相关问题…
见
所以现在我不能再进一步了,但至少我有一个答案…你所做的就是定义一个函数。问题是什么?你说的“中断”是什么意思?它不播放/录制声音-它什么都不做。那么,你是如何调用该函数的?您提供了一些源代码的链接,但没有提供示例。示例现在应该可以工作了。@Jan Bert您发布的代码看起来应该工作得很好。如果它不录制声音(或者确实不做任何事情),那是因为您没有发布在任何时候实际调用该函数的位置。因此,我假设您不调用任何函数,这就是它不工作的原因。cricket_007曾多次提到这一点,但我还没有看到你解决这些问题。
import numpy as np
T = 10
fs = 44100
t = np.arange(10*fs)
x = np.sin(2*np.pi* 440*t) + 0.5*np.sin(2*np.pi* 880*t) + 0.25 * np.sin(2*np.pi* 1320*t)
rec1 = customplayrec(x.T, fs, input_channels=2, output_channels=2, repeats=3)
def customplayrec(data, samplerate=None, input_channels=None, output_channels=None,
repeats=None, l0=None, cascade=False, dtype=None, out=None,
input_mapping=None, output_mapping=None, blocking=False, **kwargs):
import sounddevice as sd
#... filter some variables
record = sd.playrec(data, samplerate, input_channels, dtype, out,
input_mapping, output_mapping, blocking, kwargs)
#... do something with data...
return(record)