linux音频开发

2019-07-12 17:34发布

        嵌入式linux应用频播放涉及到音频格式解码、音频驱动、应用开发。linux的音频驱动框架主要有alsa和OSS两种。前者是主流,其提供OSS的音频驱动接口集,还专门给应用开发人员提供了音频函数库。而且,ALSA完全开源,自带了很多声卡驱动。ubuntu默认使用ALSA为音频驱动框架。 一、UBUNTU播放wav音频 1)apt-get install libasound 2)  apt-get install alsa-base 3) apt-get install alsa-utils ALSA提供音频工具aplay,用于播放wav格式音频:aplay  XX.wav 二、linux播放mp3音频         如果想播放MP3等其他格式音频,那就得进行解码。音频驱动以PCM数据作为输入并驱动codec工作。mp3和wav都是解码后得到PCM数据。FFMPEG支持很多音视频格式解码,构建比较复杂。有一个专门针对mp3的解码库madplay,需要进行移植: 1)zlib-1.2.3.tar.gz 2)libid3tag-0.15.1b.tar.gz 获取mp3的ID3信息 3)libmad-0.15.1b.tar.gz mp3解码库 4)madplay-0.15.2b.tar.gz madplay播放工具         maplay基于OSS框架开发,所以如果在ubuntu只有alsa驱动框架,那执行madplay会出现找不到/dev/dsp之类的错误。OSS框架是在linux内核上进行编译构建的。 三、ubuntu播放mp3         如果没有OSS框架,希望在ALSA上实现mp3解码。那有一个比较好的选择是选用SOX。SOX是音频处理中的瑞士军刀。 1)apt-get install sox
2)apt-get install lame
3)apt-get install libsox-fmt-all        安装后即可以播放,play demo.mp3        如果要调整音量,play -v 0.6 demo.mp3