后来,在zigo的建议下,我改用了pulse。zigo在linux下玩音频的,又是DD,怎么也算职业人士,推荐果然很给力。当晚我拿着usb耳机,很顺利的听到了youku视频。那一刻我热泪盈眶,感谢国家,感谢ccav,感谢zigo...
做法如下:
# aptitude install pulseaudio pavucontrol
$ pavucontrol
在输出设备页面,选择你想要的设备为默认。
如果有部分程序还是不认,建立~/.asoundrc或者/etc/asoundrc.conf,内容如下:
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}
完了。
补充一下,pulse的具体资料就不说了。大致上,pulse是一个linux的混音器。用于将多个音源发出的音频流混合成一个音频流播放。严格来说,音频设备属于独占设备,当一个软件发音的时候,其他软件应当不能发音的。这个有点类似于fifo,当两个进程同时打开fifo写数据的时候,目标只能得到碎片。
pulse的作用,是产生一个可以被多次使用的音频设备,类似于unix socket。每一个进程的数据被单独的输入,然后混音,再输出到真实的物理设备上去。由此,多个音源同时发音就变成了可能。
有人也许说,alsa原生也是支持多音源的阿。那是因为alsa内部带了一个很简单的混音器,叫做dmix。当然,pulse比dmix更加专业。
没有评论:
发表评论