我的系统是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?谢谢!
答案 0 :(得分:1)
我遇到了同样的问题。这是因为portaudio
仅仅支持OSS而构建。您需要使用ALSA支持来构建它。请注意,即使您为--with-alsa
脚本指定./configure
,即使找不到ALSA,它仍然“成功” - 您必须手动检查以下行的配置摘要:
ALSA ........................ no
(你不喜欢autotools吗?)
无论如何这样做:
sudo apt-get install libasound2-dev
./configure
等等。遗憾的是,我找不到让pa_devs
列出它支持的后端的方法,所以你只需要猜测这是问题并尝试一下。无论如何,为我工作了!