LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: zerolin

让arch linux更动听(dmix多音流)

[复制链接]
发表于 2005-3-24 19:35:34 | 显示全部楼层
很好!我用自己编译的内核。内核中加入了alsa和alsa-oss,配置好了alsa,然后只拷贝了.asoundrc,在XFCE4.2中就可以实现多音流了。谢谢了!
回复 支持 反对

使用道具 举报

发表于 2005-4-14 20:42:08 | 显示全部楼层
今天无意中发现了一个问题,就是同时开xine-ui和bmp时,调节其中一个的音量,另一个的音量也跟着变,就是说我把bmp的音量调节为80%时,xine-ui的音量也跟着自动调节为80%。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-14 21:39:09 | 显示全部楼层
很正常阿,软混音就这样的了,win下也一样的。因为是把2个音流合成一个再输出的。:)
回复 支持 反对

使用道具 举报

发表于 2005-4-14 22:04:06 | 显示全部楼层
哦,明白了!谢谢!
回复 支持 反对

使用道具 举报

发表于 2005-5-17 23:40:29 | 显示全部楼层
补充几点:

1、xmms和bmp停止播放的问题,有可能是启用了mmap的原因。可以在xmms的alsa的设置里把mmap去掉再试试。

2、通常,应安装alsa-driver alsa-lib alsa-oss alsa-utils这几个包。为了兼容更多程序(比如一些游戏),则可以再安装上esd。

3、设置好.asoundrc后,大多数使用alsa的程序都没有任何问题,可以同时发声。对于仍然有声音问题的可做如下处理:
先试试用aoss这个脚本执行,例如lumaqq:aoss ./lumaqq。这样lumaqq就可以发声了。
如果不行,则试用esd,例如wolf(重返德军总部:esddsp -mmap wolf 。-mmap是启用mmap的意思。quake3、wolf之类的游戏需要这个。

如果还有问题。则需要特殊处理。例如vmware,可以安装vmwaredsp包(google搜索即可)。使得vmware可以使用esd arts等声音服务。

4、不推荐artsd。

5、esd、aoss等都只是为了实现和其他程序同时发声,也就是多音频流。如果想完美的运行wolf、quake3等(aoss和esd都有不同程度的延迟,不过延迟很短),则尽量直接执行。前提是没有其他任何程序占用声卡。
回复 支持 反对

使用道具 举报

发表于 2005-5-27 18:27:01 | 显示全部楼层
郁闷,我的按照你的方法居然不能!alsa是驱动了,不过也只能单音流,一个程序占了阿,其他的就没有声音出了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-27 21:27:46 | 显示全部楼层
升级到最新的ALSA-1.0.9rc4a驱动试试,默认就可以支持软混音了。 安装ALSA Driver and Library。
回复 支持 反对

使用道具 举报

发表于 2005-5-27 21:54:45 | 显示全部楼层
Post by zerolin
升级到最新的ALSA-1.0.9rc4a驱动试试,默认就可以支持软混音了。 安装ALSA Driver and Library。



哦,好象arch的源上还没有吧?自己去下载编译吗?
回复 支持 反对

使用道具 举报

发表于 2005-5-27 22:18:02 | 显示全部楼层
alsa-driver 1.0.9rc4a
注意:我的声卡使用intel8x0模块儿,所以这个pkgbuild只编译intel8x0模块儿。是为了节省时间。如果你的声卡不是使用intel8x0,那么你可以把--with-cards=intel8x0里的intel8x0换成你需要的,或者干脆去掉,去掉后会编译所有模块儿。

  1. pkgname=alsa-driver
  2. pkgver=1.0.9
  3. pkgrel=rc4a
  4. pkgdesc="An alternative implementation of Linux sound support"
  5. url="http://www.alsa-project.org"
  6. depends=('glibc')
  7. source=(ftp://ftp.alsa-project.org/pub/driver/$pkgname-${pkgver}$pkgrel.tar.bz2)
  8. md5sums=()

  9. build() {
  10.   cd $startdir/src/$pkgname-${pkgver}$pkgrel
  11.   sed -i 's|/usr/bin/awk|/bin/awk|g' utils/convert_isapnp_ids
  12.   ./configure --prefix=/usr --with-cards=intel8x0 --with-sequencer=yes
  13.   # make GCC 3.4 play nice
  14.   sed -i 's|\-pipe|\-pipe -fno-unit-at-a-time|g' Makefile.conf
  15.   make || return 1
  16.   make DESTDIR=$startdir/pkg install
  17.   rm -rf $startdir/pkg/lib/modules/2.4*/modules.*
  18. }
复制代码


alsa-lib 1.0.9rc4

  1. pkgname=alsa-lib
  2. pkgver=1.0.9
  3. pkgrel=rc4
  4. pkgdesc="An alternative implementation of Linux sound support"
  5. url="http://www.alsa-project.org"
  6. depends=('glibc')
  7. source=(ftp://ftp.alsa-project.org/pub/lib/$pkgname-${pkgver}$pkgrel.tar.bz2)
  8. md5sums=()

  9. build() {
  10.   cd $startdir/src/$pkgname-${pkgver}$pkgrel
  11.   ./configure --prefix=/usr
  12.   make || return 1
  13.   make DESTDIR=$startdir/pkg install
  14. }
复制代码


alsa-utils 1.0.9rc4a

  1. pkgname=alsa-utils
  2. pkgver=1.0.9
  3. pkgrel=rc4a
  4. pkgdesc="An alternative implementation of Linux sound support"
  5. url="http://www.alsa-project.org"
  6. depends=('alsa-lib' 'dialog' 'pciutils')
  7. source=(ftp://ftp.alsa-project.org/pub/utils/$pkgname-$pkgver$pkgrel.tar.bz2 \
  8.         alsa)
  9. md5sums=()

  10. build() {
  11.   cd $startdir/src/$pkgname-$pkgver$pkgrel
  12.   ./configure --prefix=/usr
  13.   make || return 1
  14.   make DESTDIR=$startdir/pkg install
  15.   install -D -m755 ../alsa $startdir/pkg/etc/rc.d/alsa
  16. }
复制代码


alsa-oss 1.0.9rc4

  1. pkgname=alsa-oss
  2. pkgver=1.0.9
  3. pkgrel=rc4
  4. pkgdesc="OSS compatibility library"
  5. url="http://www.alsa-project.org"
  6. depends=('glibc' 'alsa-lib')
  7. source=(ftp://ftp.alsa-project.org/pub/oss-lib/$pkgname-$pkgver$pkgrel.tar.bz2)
  8. md5sums=()

  9. build() {
  10.   cd $startdir/src/$pkgname-$pkgver$pkgrel
  11.   ./configure --prefix=/usr
  12.   make || return 1
  13.   make DESTDIR=$startdir/pkg install
  14. }
复制代码


其中alsa-utils需要一个名为alsa的文件,内容如下:

  1. #!/bin/bash

  2. . /etc/rc.conf
  3. . /etc/rc.d/functions

  4. case "$1" in
  5.   start)
  6.     stat_busy "Restoring ALSA Levels"
  7.     /usr/sbin/alsactl restore
  8.     if [ $? -gt 0 ]; then
  9.       stat_fail
  10.     else
  11.       stat_done
  12.       add_daemon alsa
  13.     fi
  14.     ;;
  15.   stop)
  16.     stat_busy "Saving ALSA Levels"
  17.     /usr/sbin/alsactl store
  18.     if [ $? -gt 0 ]; then
  19.       stat_fail
  20.     else
  21.       stat_done
  22.       rm_daemon alsa
  23.     fi
  24.     ;;
  25.   restart)
  26.     $0 stop
  27.     sleep 1
  28.     $0 start
  29.     ;;
  30.   *)
  31.     echo "usage: $0 {start|stop|restart}"  
  32. esac
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-5-27 22:43:32 | 显示全部楼层
我这里alsa-utils编译失败。有成功的兄弟说一声,看看是个别现象还是都失败。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表