Win10/I有一个循环,在那里我用麦克风听背景。我有一个函数,它向我显示我当前的系统音频设备(我将该函数设置为只显示麦克风)。
这就是:
def get_mics_list():
mics = []
p = pyaudio.PyAudio()
for i in range(p.get_device_count()):
if p.get_device_info_by_index(i)['name'] == 'Microsoft Sound Mapper - Input':
pass
elif p.get_device_info_by_index(i)['name'] == 'Microsoft Sound Mapper - Output':
break
else:
mics.append(p.get_device_info_by_index(i))
return mics
我选择了常量麦克风设备索引进行循环。索引= 1。系统中的默认麦克风。当我在循环时断开麦克风时,我捕获了异常并使用第二个(集成在笔记本电脑中)麦克风继续循环,但我无法使用该函数更新当前可用系统设备的信息。它仍然显示两个麦克风,就像断开连接之前一样。
更换麦克风后,如何更新程序中的系统音频设备信息?
1条答案
按热度按时间mf98qq941#
我发现了这个问题,并想出了一个解决方案。显然,PyAudio不允许你更新设备列表而不重新初始化它。我不知道是否有人需要这个,但这里是我的解决方案:
我只通过再次调用PyAudio来更新设备列表。因此,创建如下def:
此外,在获取设备列表之前,请按如下方式调用它: