Python 2.7 获取Python中的音频输入设备列表

Python 2.7 获取Python中的音频输入设备列表,python-2.7,audio,device,Python 2.7,Audio,Device,如何使用python以这种格式获取linux中的音频输入设备列表,格式为hw:0,1 我使用pyaudio尝试了以下操作: def getaudiodevices(): p = pyaudio.PyAudio() print p.get_default_input_device_info() for i in range(p.get_device_count()): print ''#p.get_device_inf

如何使用python以这种格式获取linux中的音频输入设备列表,格式为hw:0,1

我使用pyaudio尝试了以下操作:

def getaudiodevices():
        p = pyaudio.PyAudio()
        print p.get_default_input_device_info()
        for i in range(p.get_device_count()):
                print ''#p.get_device_info_by_index(i)
我还可以使用“
arecord-l
”进行检索,但我只需要像 hw:0,1 hw:0,2

我需要这种格式的。你有什么建议吗


谢谢。

如果PaDeviceInfo结构存储的名称足够,那么您可以从
get\u device\u info\u by\u index()
返回的dict中访问“name”,然后或许可以将信息从末尾切掉:

import pyaudio

def getaudiodevices():
    p = pyaudio.PyAudio()
    for i in range(p.get_device_count()):
        print p.get_device_info_by_index(i).get('name')
给我

HDA Intel HDMI: 0 (hw:0,3)
HDA Intel HDMI: 1 (hw:0,7)
HDA Intel HDMI: 2 (hw:0,8)
HDA Intel PCH: CS4208 Analog (hw:1,0)
HDA Intel PCH: CS4208 Digital (hw:1,1)
hdmi
default
但这并不能满足您对默认设备的需求,名称似乎存储为“default”。在这种情况下,在Python中执行“
arecord-l
”就可以了,如果这正是您想要的。当然,您可以对“
aplay-l
”执行相同的操作

输出

hw:1,0
hw:1,0