作業系統:Mac OSX 10.7.5Python:Python 2.7.3(自制軟體)pyaudio:0.2.7portaudio:19.20111121(自制 – portaudio)
以下腳本輸出以下內容并顯示我遇到的問題:
#!/usr/bin/env python
import pyaudio
from pprint import pprint
p = pyaudio.PyAudio()
# SUCCEEDS
pprint(p.is_format_supported(input_format=pyaudio.paInt8,input_channels=1,rate=44100,input_device=0)) # => True
try:
stream = p.open(format=pyaudio.paInt8,channels=1,rate=44100,input=True,frames_per_buffer=1024)
data = stream.read(1024)
except IOError as e:
print 'This never happens: '+str(e)
# FAILS
pprint(p.is_format_supported(input_format=pyaudio.paInt8,input_channels=1,rate=22050,input_device=0)) # => True
try:
stream = p.open(format=pyaudio.paInt8,channels=1,rate=22050,input=True,frames_per_buffer=1024)
data = stream.read(1024)
except IOError as e:
print 'This fails: '+str(e)
# FAILS
pprint(p.is_format_supported(input_format=pyaudio.paInt8,input_channels=1,rate=22050,input_device=0)) # => True
try:
stream = p.open(format=pyaudio.paInt8,channels=1,rate=22050,input=True,frames_per_buffer=512)
data = stream.read(1024)
except IOError as e:
print 'This also fails: '+str(e)
# FAILS
pprint(p.is_format_supported(input_format=pyaudio.paInt8,input_channels=1,rate=11025,input_device=0)) # => True
try:
stream = p.open(format=pyaudio.paInt8,channels=1,rate=11025,input=True,frames_per_buffer=512)
data = stream.read(1024)
except IOError as e:
print 'This also fails as well: '+str(e)
stream.stop_stream()
stream.close()
p.terminate()
以上輸出如下:
True
True
This fails: [Errno Input overflowed] -9981
True
This also fails: [Errno Input overflowed] -9981
True
This also fails as well: [Errno Input overflowed] -9981
uj5u.com熱心網友回復:
如果要檢查作業系統和硬體是否支持所需的格式,通道,速率等設定,請執行以下操作:import pyaudio
soundObj = pyaudio.PyAudio()
# Learn what your OS+Hardware can do
defaultCapability = soundObj.get_default_host_api_info()
print defaultCapability
# See if you can make it do what you want
isSupported = soundObj.is_format_supported(input_format=pyaudio.paInt8, input_channels=1, rate=22050, input_device=0)
print isSupported
isSupported將為True,因為您的系統可以處理您的設定.記憶體溢位錯誤可能是由于某些作業系統硬體問題引起的.您必須檢查您的默認主機API實際可以執行的操作.您不需要通過“流類”“打開”和“關閉”soundObj來查詢它.
看看這個問題:PyAudio Input overflowed
有關其他pyaudio檔案和幫助,請訪問:
http://people.csail.mit.edu/hubert/pyaudio/docs/
編輯:
事實證明,“Errno輸入溢位–9981”并不是一個小問題:http://trac.macports.org/ticket/39150
我看到你有最新的portaudio版本(19.20111121),但19.20111121_4聲稱修復了這個bug.看看升級portaudio是否有效.
uj5u.com熱心網友回復:
所以這個問題怎么解決呢?轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/57262.html
標籤:其他技術討論專區
上一篇:誰有這個原始碼
