portaudio pa_devs报告0设备

时间:2016-01-30 20:50:50

标签: portaudio

我的系统是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?谢谢!

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。这是因为portaudio仅仅支持OSS而构建。您需要使用ALSA支持来构建它。请注意,即使您为--with-alsa脚本指定./configure,即使找不到ALSA,它仍然“成功” - 您必须手动检查以下行的配置摘要:

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

(你不喜欢autotools吗?)

无论如何这样做:

sudo apt-get install libasound2-dev
./configure

等等。遗憾的是,我找不到让pa_devs列出它支持的后端的方法,所以你只需要猜测这是问题并尝试一下。无论如何,为我工作了!