彻底抛弃 ubuntu 10.04 中的 pulse(解决Skype中麦克风不工作问题)

Apr 07 2011 Published by under Study

好像是从 ubuntu 9.10 开始,pulse 就取代了 alsa 成为系统默认的声音驱动。虽说 pulse 看上去比 alsa 有这样那样的优势,但是它现在还是不如 alsa 稳定,比如在我的现在电脑上,pulse 就导致我现在没法在 Skype 里面用麦克风,很让人头疼。

要让麦克风正常工作,有两个办法,首先是简单一点的办法:

  • 1. 用新立德安装一个叫 pavucontrol (Pulse Audio Volume Controller) 的程序。
  • 2. 打开 Pulse Audio Volume Controller ,在里面找到输入设备的标签页。
  • 3. 点掉这个标签页里的那个小锁标志,然后把左右声道中的其中一个调整为10%,另一个80%。

这个办法是最简单的,但是在我的电脑上效果不好。虽然麦克风可以用了,但是背景噪音很大,导致我跟别人语音的时候别人根本听不清我说的话。

如果上一个方法你用着也不舒服,那就用第二招吧,直接卸载掉 pulse Audio 。但是在 ubuntu 10.04 版本里,系统内置的音量控制功能已经成了 pulse Audio 的一部分,如果你直接remove掉 pulse Audio ,那么 ubuntu 中用来控制音量的 indicator-sound 也就被一起卸掉了,系统音量也就无法进行调节。

好在俄国高手做了一个叫 audiohacks 的PPA,里面提供了一些修改过的 gnome-media/applets/settings-daemon 组件,让我们可以在 remove 掉 pulseAudio 之后可以找到替代 indicator-sound 的工具。

下面就是 ubuntu 10.04 彻底卸载 pulseAduio 的全过程:

首先卸载掉 PulseAudio:

sudo apt-get remove pulseaudio

sudo killall pulseaudio

然后安装 audiohacks :

sudo add-apt-repository ppa:dtl131/ppa

sudo apt-get update

sudo apt-get remove gstreamer0.10-pulseaudio

sudo apt-get install gstreamer0.10-alsa gnome-alsamixer alsa-oss python-alsaaudio gnome-applets gnome-media gnome-settings-daemon libcanberra0 libcanberra-gtk-module libcanberra-gtk0 libgnome-media0 gnome-applets-data libcanberra-gstreamer alsa-tools

在终端里运行 gstreamer-properties ,把输出输入改为 ALSA 。

如果是在图形界面系统里,登出用户,重新登录。之后在 GNOME panel 上点右键,选择 Add to panel–>Volume Control–>Add。

这样调整之后,pulse 已经被卸载掉了,但是有可能你的麦克风依然有背景噪音。这是因为 Alsa 默认给输入设备设置的音量太大造成的。只要用 Alsa Mixer 调整一下就好:

终端里输入:

alsamixer

用方向键控制光标,把 Mic Boos 一列的音量调小。一般调到红色部分全部消失为好。

现在我的系统中已经可以在 Skype 里使用 Alsa 了,麦克风也可以正常工作,而且系统音量也可以调整,折磨了我好久的 Skype 无法语音问题完美解决。最后提醒一下,如果你发现一些播放器无法正常播放,请把它们的输出系统从 pulse 改为 alsa。

20 responses so far

  • says:

    看来这也是个技术blog..

    [Reply]

    feicun Reply:

    毕竟我是学技术的……

    [Reply]

  • wayne says:

    alsa王道。。。

    [Reply]

    feicun Reply:

    必须的~

    [Reply]

  • muyee says:

    看得晕,呵呵.

    [Reply]

    feicun Reply:

    呃……这个比较偏技术……

    [Reply]

  • ziegfeld says:

    博主你好!

    按照你的步骤做了。

    但 Skype 里面我这里只有PulseAudio可以选啊
    skype-ubuntu-intrepid_2.1.0.81-1_amd64 (我是ubuntu 10.04 x64)
    也就是官方最新的Skype 2.1 beta 2

    [Reply]

    ziegfeld Reply:

    @ziegfeld, 再次重启,竟然好了……多谢楼主了……

    另外,在这里找到一个方法,不删Pulse的,对我也有用:
    http://forum.ubuntu.com.cn/viewtopic.php?f=50&t=135154

    If you are having audio problems, first check to make sure that sound is working on your system and that your microphone and speaker volume levels are high enough. First test your mic and sound by using the application Sound Recorder. If the mic works, and you cannot hear yourself using the Skype Test Call feature, use Synaptic Package Manager to install pavucontrol (Pulse Audio Volume Controller). Use the application to set-up your input device. Most built-in mics are mono. The default setting on the Input Control is to lock the R&L channel together. By reading the mono mic as stereo, PulseAudio cancels the input. Click on the middle button on the upper right of the control panel to unlock the R&L channel. Move either the left or right channel to 10 leaving the other channel about 90. You should now see the VU meter sensing sound. Now try Skype again.

    [Reply]

    feicun Reply:

    @ziegfeld, 非常感谢!!我当时没有找到可用的方法,最后只能用删除pulse的损着了……等过几天ubuntu10.10发布的时候,希望这个问题能被解决,同时也希望skype赶紧升级linux客户端!

    [Reply]

  • […] 台湾的一个音乐组合吧,棉花糖什么的,在他们的专辑里加了个光盘,里面就一个AR程序。音乐一边放,一边气球什么就在屏幕上飞。拿摄像头照着自己,卡片放旁边,一边看一边傻笑,脑残人士的最爱。有个Linux版[13],怎么用博主讲得比较清楚了,可以看看。但是我Pulse Audio总是禁止失败,所以程序跑个那么几秒就出错。附上我禁Pulse Audio的方法[14]。对了运行时大概还会说没找到什么什么库,其实它用的是****.so.1,但貌似系统里的版本已经是****.so.4,找对位置把要求的几个文件建个软链接就可以。 […]

  • mal says:

    哈哈,谢谢你!我的笔记本终于可以调节声音了。。。太好了。不过亮度的我还没找到方法。。继续寻找去。。。

    [Reply]

    feicun Reply:

    @mal, 笔记本的亮度调节功能键组合在ubuntu下没有效果吗?

    [Reply]

  • DH says:

    楼主好,我照你说的步骤去操作了 然后最后一步是如下:然后电脑完全哑巴了,如何解决啊?

    dh@dh-ThinkPad-Edge-E445:~$ sudo apt-get install gstreamer0.10-alsa gnome-alsamixer alsa-oss python-alsaaudio gnome-applets gnome-media gnome-settings-daemon libcanberra0 libcanberra-gtk-module libcanberra-gtk0 libgnome-media0 gnome-applets-data libcanberra-gstreamer alsa-tools
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Package libgnome-media0 is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source
    However the following packages replace it:
    gnome-media:i386 gnome-media

    E: Package ‘libgnome-media0’ has no installation candidate

    [Reply]

    feicun Reply:

    @DH, 你用的什么版本的系统?这都过去好几年了,有些包的名称都变了,不能照搬帖子里的步骤了

    [Reply]

    DH Reply:

    @feicun, 我不知道是ubuntu 哪个版本, 在哪里可以看到呢?刚才的问题已经解决了,我重新下载了indicator sound 和 pulse audio。 但是我的skype 2.1 beta 还是显示problem with audio playback , 怎么解决呢?而且这个版本的skype上也找不到sound device, sound setting之类的

    [Reply]

    feicun Reply:

    @DH, 我已经很久没用ubuntu了,也不知道你是什么桌面环境,不过应该在设置或者系统里应该有类似系统信息的软件,那里可以看版本号。而且你还在用skype2.1,也太旧了。最新版的ubuntu应该是13.10

    [Reply]

    DH Reply:

    @feicun, 我也知道那个很老 但 Skype 我下载 的其他版本安装不了;Release 12.04 (precise) 64-bit
    Kernel Linux 3.2.0-58-generic;GNOME 3.4.2

    [Reply]

    feicun Reply:

    @DH, 内核挺旧了,试试13.10吧,说不定是硬件驱动的问题,换个新内核就可以用了

    DH Reply:

    @feicun, 问题解决了,这样可以:

    >> For 32Bit
    Terminal Commands:

    wget http://download.skype.com/linux/skype-ubuntu-lucid_4.2.0.11-1_i386.deb
    sudo dpkg -i skype-ubuntu-lucid_4.2.0.11-1_i386.deb
    sudo apt-get -f install;rm skype-ubuntu-lucid_4.2.0.11-1_i386.deb

    >> For 64Bit
    Terminal Commands:

    sudo dpkg –add-architecture i386
    sudo apt-get install ia32-libs
    sudo apt-get update
    wget http://download.skype.com/linux/skype-ubuntu-lucid_4.2.0.11-1_i386.deb
    sudo dpkg -i skype-ubuntu-lucid_4.2.0.11-1_i386.deb
    sudo apt-get -f install;rm skype-ubuntu-lucid_4.2.0.11-1_i386.deb

    After all of this run in terminal sudo apt-get install sni-qt:i386; This will restore the skype contact window
    That’s all, work done in maximum 5 minutes. I use Ubuntu on 64bit and this method to install Skype worked always perfectly.

    [Reply]

  • DH says:

    随后就下面这样了

    dh@dh-ThinkPad-Edge-E445:~$ gstreamer-properties

    (gstreamer-properties:3808): Gtk-WARNING **: Unknown property: GtkDialog.has-separator

    (gstreamer-properties:3808): Gtk-WARNING **: Unknown property: GtkDialog.has-separator
    gstreamer-properties-Message: Skipping unavailable plugin ‘artsdsink’
    gstreamer-properties-Message: Skipping unavailable plugin ‘esdsink’
    gstreamer-properties-Message: Skipping unavailable plugin ‘pulsesink’
    gstreamer-properties-Message: Skipping unavailable plugin ‘sunaudiosink’
    gstreamer-properties-Message: Skipping unavailable plugin ‘glimagesink’
    gstreamer-properties-Message: Skipping unavailable plugin ‘sdlvideosink’
    gstreamer-properties-Message: Skipping unavailable plugin ‘v4lmjpegsrc’
    gstreamer-properties-Message: Skipping unavailable plugin ‘qcamsrc’
    gstreamer-properties-Message: Skipping unavailable plugin ‘v4lsrc’
    gstreamer-properties-Message: Skipping unavailable plugin ‘esdmon’
    gstreamer-properties-Message: Skipping unavailable plugin ‘sunaudiosrc’
    gstreamer-properties-Message: Skipping unavailable plugin ‘pulsesrc’
    gstreamer-properties-Message: Error running pipeline ‘ALSA — Advanced Linux Sound Architecture’: Could not open audio device for playback. [gstalsasink.c(694): gst_alsasink_open (): /GstPipeline:pipeline0/GstAlsaSink:alsasink1:
    Playback open error on device ‘default’: No such file or directory]
    gstreamer-properties-Message: Error running pipeline ‘ALSA — Advanced Linux Sound Architecture’: Could not open audio device for playback. [gstalsasink.c(694): gst_alsasink_open (): /GstPipeline:pipeline1/GstAlsaSink:alsasink2:
    Playback open error on device ‘default’: No such file or directory]
    gstreamer-properties-Message: Error running pipeline ‘ALSA — Advanced Linux Sound Architecture’: Could not open audio device for playback. [gstalsasink.c(694): gst_alsasink_open (): /GstPipeline:pipeline2/GstAlsaSink:alsasink3:
    Playback open error on device ‘default’: No such file or directory]

    (gstreamer-properties:3808): GLib-GObject-WARNING **: invalid cast from `GtkBuilder’ to `GtkWidget’

    (gstreamer-properties:3808): Gtk-CRITICAL **: gtk_widget_get_screen: assertion `GTK_IS_WIDGET (widget)’ failed
    dh@dh-ThinkPad-Edge-E445:~$ alsamixer
    dh@dh-ThinkPad-Edge-E445:~$

    [Reply]

Leave a Reply