我需要更改python脚本上使用的音频设备。我正在使用alsaaudio,根据此http://pyalsaaudio.sourceforge.net/libalsaaudio.html,只需在创建PCM设备时输入卡名即可实现。当我输入Python
时import alsaaudio
alsaaudio.cards()
我得到了
[u'Intel', u'Q9000']
但创建PCM对象为
alsaaudio.PCM(aa.PCM_CAPTURE, aa.PCM_NORMAL, 'Q9000')
它返回
Unknown PCM default:CARD=Q9000
我试图修改.asoundrc以获得我想要的默认配置,但是当它与Python上的aplay和arecord一起使用时,默认的音频设备仍然是相同的。
On~ / .asoundrc我把
pcm.quicktimeWebCam
{
type hw
card Q9000
}
pcm.internal
{
type hw
card Intel
}
pcm.!default
{
type asym
playback.pcm
{
type plug
slave.pcm "internal"
}
capture.pcm
{
type plug
slave.pcm "quicktimeWebCam"
}
}
答案 0 :(得分:3)
ALSA设备由“hw:x,y”表示,其中x是设备,y是子设备(如果有的话)。期望卡以“hw:x,y”的形式指定,而不是人类可读的名称。
card_info = {}
for device_number, card_name in enumerate(alsaaudio.cards()):
card_info[card_name] = "hw:%s,0" % device_number
device = alsaaudio.PCM(card=card_info["Q9000"])
答案 1 :(得分:0)
alsaaudio
的设备名称有一些未记载的怪癖;
当您使用普通卡ID(由cards()
返回时)时,您应该拥有一个接受卡参数的default
设备。
(默认default
支持此参数。)
要使用特定设备,请使用plug:internal
或plug:quicktimeWebCam
。
答案 2 :(得分:0)