安裝 alsa-base, alsa-oss
移除libesd0,裝上libesd-alsa0
新增 ~/.asoundrc
- 代碼: 選擇全部
# For OSS Emulation
pcm.dsp {
type plug
slave.pcm "dmixer"
}
pcm.dsp0 {
type plug
slave.pcm "dmixer"
}
ctl.mixer {
type hw
card 0
}
ctl.mixer0 {
type hw
card 0
}
pcm.!default {
type plug
slave.pcm "dmixer"
}
pcm.dmixer {
type dmix
ipc_key 1024
slave {
pcm "hw:0,0"
period_time 0
period_size 2048
buffer_size 8192
rate 48000
}
bindings {
0 0
1 1
}
}
ctl.dmixer {
type hw
card 0
}
為何設定成period_size 2048 ?請參見 http://alsa.opensrc.org/index.php?page=DmixPlugin ,"Still Hearing Stuttering?" 一節
各種應用程式設定:
Rhythmbox等使用gstreamer的程式:
執行gstreamer-properties: Audio-Sink:Output:Custom
Pipeline:"alsasink device=dmixer"
不這樣設的話,聲音出來個2秒程式就會當掉。
gaim等使用esound的程式:
/etc/esound/esd.conf:
- 代碼: 選擇全部
[esd]
auto_spawn=1
spawn_options=-terminate -nobeeps -as 5 -d default
spawn_wait_ms=1000
# default options are used in spawned and non-spawned mode
default_options=
-d default 就是我們在asoundrc設定的default設備,使用到dmix
問題:
1.java(sunj2sdk1.4.2_06)的聲音還是要等所有其它佔用音效的程式完畢後才會發出。比如jin這個java的chess client。
2.flash-nonfree在firefox裡還是沒有聲音。dpkg-reconfigure mozilla設定的wrapper為auto或esd都一樣。
參考資料:
http://alsa.opensrc.org/index.php?page=DmixPlugin
http://gentoo-wiki.com/index.php?title= ... r_aka_dmix
http://ubuntuforums.org/archive/index.php/t-8622.html