2013-09-29 36 views
0

我想實現一個PyAudio庫的方法,我想改變默認輸入設備,因爲我已經將基於USB的麥克風連接到我的筆記本電腦,而不使用內置MIC,但是我現在面臨的問題這樣做,在Python(Linux)中使用PyAudio庫

下面是該方法的完整細節,

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()來製作新的Stream。

__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)) 

但它給人的錯誤。

這裏是方法的完整文檔, 初始化「> http://people.csail.mit.edu/hubert/pyaudio/docs/#pyaudio.Stream。初始化

+0

可能重複的http:// stackoverflow。com/questions/287085/what-do-args-and-kwargs-mean –

+0

我的問題比簡單詢問args和kwargs更具體。 –

+1

Xufyan,你可能會更具體,因爲現在這有點誤導。如果我的理解正確,你會問如何使用PyAudio.open方法(如何使用庫),而不是如何實現一個函數。 – spinus

回答

2

*args會讓任何位置參數被傳遞給功能列表

**kwargs會讓任何關聯參數被傳遞給功能字典

例:

def a(*args,**kwargs): 
    print args 
    print kwargs 

a('abc','75449',test=None,abc=-1) 

打印:

['abc','75449'] 
{'test':None,'abc':-1} 
+0

我認爲這不是許發燕所要求的。這是關於pyaudio而不是python本身。 – spinus

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更好的問題或經驗,我也沒有。