我设法有了Skype 4.3。在我的(否则为纯ALSA)系统上运行。我正在运行openSuSE 13.1,因此,我只能描述我在这里所做的事情。通常的想法是让Skype运行在一种“ pulseaudio监狱”中。
我安装了pulseaudio,但是没有激活它。关于不激活pulseaudio的最重要的事情似乎是一条线
autospawn = no
在/etc/pulse/client.conf中。
下一个准备步骤是根据https://wiki.archlinux.org/index.php/Pulseaudio修改/etc/pulse/default.pa :
# BEGIN CHANGED: https://wiki.archlinux.org/index.php/Pulseaudio
load-module module-alsa-sink device=dmix
load-module module-alsa-source device=dsnoop
# END CHANGED: https://wiki.archlinux.org/index.php/Pulseaudio
#ORIG: #load-module module-alsa-sink
#ORIG: #load-module module-alsa-source device=hw:1,0
#ORIG: ### Automatically load driver modules depending on the hardware available
#ORIG: .ifexists module-udev-detect.so
#ORIG: load-module module-udev-detect
#ORIG: .else
#ORIG: ### Use the static hardware detection module (for systems that lack udev support)
#ORIG: load-module module-detect
#ORIG: .endif
然后我在〜/ .asoundrc中添加了两行:
pcm.unwantedpulse { type pulse }
ctl.unwantedpulse { type pulse }
Shell脚本“ myskype”如下所示:
#!/bin/sh
umask 0
cd
# 1. step: start pulseaudio in advance
mkdir .pulse 2> /dev/null
echo 'autospawn = yes' > .pulse/client.conf
aplay -q -D unwantedpulse /usr/share/skype/sounds/ChatOutgoing.wav
# now pulseaudio should be running
# 2. step: important mixer settings - these are hardware dependent and (probably) not really necessary
amixer sset Digital 100% unmute cap
amixer sset Capture 99% unmute cap
# etc etc
pacmd set-source-volume alsa_output.dmix.monitor 0x10000
pacmd set-source-volume alsa_input.dsnoop 0x11000
# 3. step: start skype in background
/usr/bin/skype &
skypepid=$!
sleep 9
# to prevent funny programs like firefox from connecting (or even starting)
# pulseaudio, we clean up rather quickly
rm -rf .pulse
# wait for skype to exit
wait $skypepid
# 4. step: stop pulseaudio
pactl exit
sleep 4
pactl exit
exit 0
现在,当我启动“ myskype”时,skype将在该“ pulseaudio监狱”中启动,但其他所有内容仍在使用ALSA。