我正在尝试实现一个PyAudio库的方法,我想更改默认输入设备,因为我已经将基于USB的Mic连接到我的笔记本电脑而不使用内置MIC,但我面临着这样做的问题,< / p>
以下是该方法的完整细节,
Help on method open in module pyaudio:
open(self, *args, **kwargs) method of pyaudio.PyAudio instance
Open a new stream. See constructor for
:py:func:`Stream.__init__` for parameter details.
:returns: A new :py:class:`Stream`
class pyaudio.Stream(PA_manager, rate, channels, format, input=False, output=False, input_device_index=None, output_device_index=None, frames_per_buffer=1024, start=True, input_host_api_specific_stream_info=None, output_host_api_specific_stream_info=None, stream_callback=None)
PortAudio Stream Wrapper.
使用PyAudio.open()
制作新流。
__init__(PA_manager, rate, channels, format, input=False, output=False, input_device_index=None, output_device_index=None, frames_per_buffer=1024, start=True, input_host_api_specific_stream_info=None, output_host_api_specific_stream_info=None, stream_callback=None)
初始化流;这应该被称为
PyAudio.open()
。流可以是输入,也可以是输出。
我想要做的是使用
PyAudio.open()
方法并将input_device_index=
的值设置为1
但我无法理解如何传递此函数中的参数以及如何使用 init ?
我已经尝试过的是,
p = pyaudio.PyAudio()
p.open(__init__(input_device_index=1))
但它给出了错误。
这是方法的完整文档, INIT“&GT; HTTP://people.csail.mit.edu/hubert/pyaudio/docs/#pyaudio.Stream的初始化
答案 0 :(得分:2)
*args
将任何位置参数作为列表传递给函数。
**kwargs
将任何关联参数作为dict传递给函数。
示例:
def a(*args,**kwargs):
print args
print kwargs
a('abc','75449',test=None,abc=-1)
打印:
['abc','75449']
{'test':None,'abc':-1}
答案 1 :(得分:2)
p = pyaudio.PyAudio()
p.open(__init__(input_device_index=1))
没有意义,因为__init__
未定义。初始化PyAudio.__init__
会调用PyAudio
,因此这将是
p = pyaudio.PyAudio(input_device_index=1)
p.open()
虽然似乎open
使用*args
和**kwargs
传递了所有属性,但它可能是
p = pyaudio.PyAudio()
p.open(input_device_index=1)
任何比这更精确的事情都需要更好的PyAudio问题或经验,我都没有。