portaudio pa_devs 报告 0 台设备

portaudio pa_devs report 0 device

我的系统是 ubuntu 15.10。我非常确定我的音频有效,

arecord -l

**** List of CAPTURE Hardware Devices ****
card 1: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 2: ALC887-VD Alt Analog [ALC887-VD Alt Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

但是pa_devs,官方提供的portaudio可执行文件,报告0设备如下,

PortAudio version number = 1899
PortAudio version text = 'PortAudio V19-devel (built Jan 30 2016 19:22:45)'
Number of devices = 0

我可以用 pyAudio 获取设备编号

import pyaudio

pa = pyaudio.PyAudio()
print(pa.get_default_input_device_info())
print(pa.get_device_count())

--- output ---

{'defaultHighInputLatency': 0.034829931972789115, 'maxInputChannels': 32, 'defaultLowOutputLatency': 0.008707482993197279, 'defaultLowInputLatency': 0.008707482993197279, 'defaultSampleRate': 44100.0, 'hostApi': 0, 'structVersion': 2, 'maxOutputChannels': 32, 'defaultHighOutputLatency': 0.034829931972789115, 'name': 'default', 'index': 6}
7

我应该安装一些东西还是用一些特殊设置重新构建 portaudio?谢谢!

我 运行 遇到了这个完全相同的问题。这是因为 portaudio 是在仅支持 OSS 的情况下构建的。您需要在 ALSA 支持下构建它。请注意,即使您将 --with-alsa 指定给 ./configure 脚本,它仍然 "succeeds" 即使它找不到 ALSA - 您必须手动检查配置摘要中是否有这样一行:

 ALSA ........................ no

(你不喜欢自动工具吗?)

无论如何都要这样做:

sudo apt-get install libasound2-dev
./configure

等等。不幸的是,我无法找到一种方法让 pa_devs 列出它支持的后端,所以你只需要猜测这是问题所在并尝试一下。反正对我有用!