UBUNTU 18.04使用OSS 4.2库播放音频,ALSA兼容库SALSA采用aplay播放(自用记录有点乱)

本文介绍了在Ubuntu上安装OSS4.2版本的方法,包括通过apt-get安装基础包和手动编译。重点讨论了SALSA兼容层的配置问题,以及ALSA版本限制和编译过程中遇到的问题,建议使用OSS原生API。
摘要由CSDN通过智能技术生成

OSS使用版本

oss-v4.2-build2020-src-gpl.tar.bz2http://www.4front-tech.com/developer/sources/stable/gpl/oss-v4.2-build2020-src-gpl.tar.bz2

在UBUNTU上安装OSS4.2可以采用apt-get安装oss4-base oss-dkms liboss4-salsa2

也可以手动编译下载的OSS4.2

salsa是OSS的alsa的简单兼容层库,在lib/libsalsa下,按说明好像无法编译只能选NO

按照--help提示configure  --enable-libsalsa=YES后无法运行只能不带,然后到目录下手动make编译,编译后生成libsalsa.so依赖于libOSS

使用aplay播放时可用将libsalsa.so链接为/usr/lib/x86_64-linux-gnu/libasound.so.2,然后播放,会采用兼容层调用OSS播放

播放时会提示采用兼容层播放

root@dzg-virtual-machine:/home/dzg/work/tools/alsa-0.9rc3/alsa-utils-0.9.0rc3/aplay# ./aplay /work/tmp/in.wav 
********************   WARNING   *******************************
Warning! aplay uses ALSA emulation instead of the native OSS API
****************************************************************

Playing WAVE '/work/tmp/in.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono

 ldd ./aplay
    linux-vdso.so.1 (0x00007ffca797e000)
    libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007fe4bd92c000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe4bd58e000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe4bd38a000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe4bd16b000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe4bcd7a000)
    libOSSlib.so => /usr/lib/x86_64-linux-gnu/libOSSlib.so (0x00007fe4bcb76000)
不过OSS4.2的SALSA兼容层好像只支持老版本的ALSA库链接的程序,源码里限定ALSA_0.9, ALSA_0.9.0rc4,因此只能自己下载ALSA的lib及util重新编译,下载alsa-lib-0.9.0rc3.tar.bz2无法编译通过,需要使用alsa-driver-0.9.0rc3.tar.bz2里面的include文件编译才行,并且configure脚本也无法执行成功,libtool版本太高不支持ltconfig了,解决方法

ltconfig: you must specify a host type if you use `--no-verify'
Try `ltconfig --help' for more information.
configure: error: libtool configure failed

其实真正有用的是上面的

checking host system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized

checking build system type... Invalid configuration `x86_64-unknown-linux-gnu': machine `x86_64-unknown' not recognized

大意是configure认不出系统的类型, 然后出现下面的 you must specify a host type. 解决方法是:

用 /usr/share/misc/config.guess 覆盖alsalib目录下 config.guess
用 /usr/share/misc/config.sub 覆盖 alsalib目录下 config.sub

重新编译成功后可以用来链接aplay程序了

编译aplay程序发现好多语法ubuntu里的gcc不认了,一一修改后重新编译手动链接上面的lib,成功后就可以用来播放文件了,这个SALSA兼容库支持的还是有限,并且不更新,不推荐使用了,还是老老实实用OSS的API调用吧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值