道歉爲新手問題,但我試圖在我的Mac上運行下面的代碼(PyAudio文檔的一個例子) OS 10.7.2):Geting IOError:[Errno輸入溢出] -9981當設置PyAudio Stream輸入和輸出爲True
import pyaudio
import sys
chunk = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
p = pyaudio.PyAudio()
stream = p.open(format = FORMAT,
channels = CHANNELS,
rate = RATE,
input = True,
output = True,
frames_per_buffer = chunk)
print "* recording"
for i in range(0, 44100/chunk * RECORD_SECONDS):
data = stream.read(chunk)
stream.write(data, chunk)
print "* done"
stream.stop_stream()
stream.close()
p.terminate()
是我給的錯誤是:
Traceback (most recent call last):
File "PyAudioExample.py", line 24, in <module>
data = stream.read(chunk)
File "/Library/Python/2.7/site-packages/pyaudio.py", line 564, in read
return pa.read_stream(self._stream, num_frames)
IOError: [Errno Input overflowed] -9981
我做了在谷歌這個錯誤的搜索,發現無論是製作一塊大或變小可以幫助。我試過這個,並沒有什麼區別。我也嘗試添加以下代碼,以趕上過載例外:
try:
data = stream.read(chunk)
except IOError as ex:
if ex[1] != pyaudio.paInputOverflowed:
raise
data = '\x00' * chunk
這避免了錯誤,但不是我的輸出輸入音頻,聽到一串響亮的點擊的。
爲了排除故障,我註釋了output = True行,程序運行正常,但沒有輸出任何內容。我註釋掉了input = True,並在Wave文件中讀取,而流可以輸出音頻。我試圖創建2個流,一個用於輸入,另一個用於輸出,而且這也不起作用。
還有什麼我可以做,以避免這個錯誤?
在此先感謝。
見 http://stackoverflow.com/questions/33837097/pyaudio-recorder-script-ioerror-errno-input-overflowed-9981/34021599#34021599 – am70 2015-12-03 08:15:59