Chinaunix首页 | 论坛 | 博客
  • 博客访问: 138462
  • 博文数量: 33
  • 博客积分: 15
  • 博客等级: 民兵
  • 技术积分: 42
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-22 10:23
个人简介

嵌入式带动整个社会!

文章分类
文章存档

2015年(4)

2014年(15)

2013年(8)

2012年(6)

分类: LINUX

2014-05-07 10:46:54

基本思路:alsa是主流且能兼容oss,故用alsa驱动统一低层。esound是gnome默认的声音服务,很多程序都基于它,故用esd统一高层。能够方便的实现混音,就是多个音频播放能够协调工作;他的反面就是,每次只有一个音频播放能正常工作。

1)alsa声音驱动的编译和配置
    用modconf和module-assistant加/卸载启动模块是最方便的方法。
    sudo m-a        //使用module-assistant加载alsa,按照提示来吧。
    sudo apt-get install alsa-base
    sudo dpkg-reconfigure alsa-base    //推荐always autosave
    sudo apt-get install alsa-oss    //混音必须:-)
    sudo apt-get install libesd-alsa0    //alsa可用的esound共享库,替代原来的libesd0
    sudo alsaconf     //自动查找及配置声卡
    sudo alsamixer //调整声音
    看到配置界面了吧:-) M键是静音开关, ESC退出, “上下”是音量, “左右”是项目.
    一般的Headphone Jack Sense 和 Line Jack Sense设为静音。
    

2) esound声音服务的安装和配置
    sudo apt-get install esound
     这里,重点就是esound的配置
    cd /etc/esound/esd.conf    //具体man esd.conf
     修改后内容如下:
      [esd]
       auto_spawn=1        //使用混音,推荐1;如果要用gnome音效,推荐0(参见man esd.conf)
       spawn_options=-terminate -nobeeps -as 5 -d default        //经过前面的过程,default指的就是alsa
       spawn_wait_ms=100        // 默认100。如果不实用alsa混音,这个一定要大点儿,不然esound会认为自己出错,影响整个X。当时,小孙就简单的加个0
       # default options are used in spawned and non-spawned mode
       default_options=

3) gnome音效
     虽说不是必要的,不过有点声音很有活力不是吗:-)
     菜单application->desktop performance->sound,勾上general里的两个选框, 开启音效服务和事件音效
    sudo apt-get install  gnome-audio        //安装Gnome音效文件
   
很简单是不是?

2007,12,08 附加:
4)dmix混音。dmix是Alsa自带的混音插件
建立~/.asoundrc,小孙的功放是普通的双声道立体音响/耳机,内容如下:
pcm.ossmix {
        type dmix
        ipc_key 1024
        slave {
                pcm "hw:0,0"
                period_time 0
                period_size 1024
                buffer_size 4096
                rate 44100
                format S32_LE
        }
        bindings {
                0 0
                1 1
        }
}

pcm.!default {
        type plug
        slave.pcm "ossmix"
}

pcm.dsp0 {
        type plug
        slave.pcm "ossmix"
}

ctl.mixer0 {
        type hw
        card 0
}

具体含义,请参考

5)以上配置方案,经过了小孙两年时间的Debian系统下的使用验证,请放心

阅读(2061) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~