linux音频开发

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yueqian_scut/article/details/81516501

        嵌入式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

猜你喜欢

转载自blog.csdn.net/yueqian_scut/article/details/81516501