当前位置: 首页 > 面试题库 >

PyAudio IOError:没有默认输入设备可用

公西英叡
2023-03-14
问题内容

我在Ubuntu 10.10 x64中的Enthought Python发行版(Python 2.6.6)下使用PyAudio。

>>> import pyaudio
>>> pa = pyaudio.PyAudio()
>>> pa.get_default_input_device_info()

Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    pa.get_default_input_device_info()
  File "/usr/lib/python_epd/lib/python2.6/site-packages/pyaudio.py", line 936, in get_default_input_device_info
    device_index = pa.get_default_input_device()
IOError: No Default Input Device Available

这是我尝试打开输入流时遇到的相同错误。没有相应的错误“ IOError:无默认输出设备可用”


问题答案:

好的,这不是一个漂亮的解决方案,但对我有用。根据我对ulidtko答案的评论,pyaudio不是问题,而是pyaudio应该绑定到的底层PortAudio。

在ubuntu上,portaudio驱动程序与此软件包一起安装

sudo apt-get install python-gnuradio-audio-portaudio

您必须已经拥有了它,因为您说过您的股票ubuntu可以很好地运行代码(尽管有些调试消息可以忽略)

如果查询portaudio模块的位置,则在运行enthought的python时会发现以下内容:

>>> import pyaudio
>>> pyaudio.pa.__file__
'/opt/epd-7.2-2-rh5-x86_64/lib/python2.7/site-packages/_portaudio.so'

以及库存ubuntu上的以下内容:

In [1]: import pyaudio
In [2]: pyaudio.pa.__file__
Out[2]: '/usr/lib/pymodules/python2.7/_portaudio.so'

我移开了想念的_portaudio.so并用指向系统_portaudio.so的链接替换了它,现在一切都包括在chaco demo /
advanced目录中的可爱的频谱分析仪起作用了:

cd /opt/epd-7.2-2-rh5-x86_64/lib/python2.7/site-packages/
mv _portaudio.so _portaudio.so.originalEPD
ln -s /usr/lib/pymodules/python2.7/_portaudio.so


 类似资料:
  • 设置当前设备(本地缓存) 参数说明 字段 类型 必须? 说明 device RKDevice 是 设备Entity 接口定义 Swift: RokidMobileSDK.device.setCurrentDevice(device: RKDevice) Objc: [RokidMobileSDK.device setCurrentDeviceWithDevice:self.device]; 获

  • 获取默认设备 接口说明 获取当前选择的设备。 示例代码: SDKDevice device = RokidMobileSDK.device.getCurrentDevice(); 设置默认设备 接口说明 更新当前选择设备 参数说明 字段 类型 必须? 说明 device SDKDevice 是 若琪设备实体 示例代码: RokidMobileSDK.device.setCurrentDevice

  • 26 输入设备 FFmpeg中的输入设备配置元素用来启用对附加到您的系统一个多媒体设备访问数据。 当编译时,默认会支持所有的输入设备。你可以通过在配置脚本执行时附加–list-indevs了解到支持的设备。 可以通过–disable-indevs在编译时禁用所有输入设备,也可以在此基础上通过–enable-indev=INDEV允许个别设备,或者在默认支持基础上通过–disable-indev=I

  • 在此对话框,您可以输入默认的密码,这可应用在添加、解压、测试和查看选项时。 如果“显示密码”选项被禁用并且压缩文档操作时需要密码,您将会被要求输入密码两次来进行正确性的确认。 如果您设置了“加密文件名选项”,WinRAR 不只加密数据,而且加密所有包括文件数据、文件名、大小、属性、注释和其它块等所有可感知的压缩文件区域,所以它提供了更高的安全等级。在压缩文件中使用这个命令加密,没有密码甚至不可能查

  • 问题内容: 但它不起作用,如何设置默认值? 问题答案: 日期应采用格式。一位数的日期和月份应填充0。一月是01。 从文档中: 代表日期的字符串。 值:RFC3339中定义的有效完整日期,另外具有年份部分为四位或更多位数字表示大于0的数字的资格。 您的代码应更改为:

  • 我在组件中有输入: 模板是: 问题是,如果< code >申请人没有对象< code >代表,申请就会失败。 如果没有,如何设置默认值? 这样地: 我需要始终有< code >类型的< code >代表。 这里还介绍了如何避免错误: