mp3播放器madplay 移植过程详解

                mp3播放器madplay 移植过程详解
说明:网上也有很多类似的博客文章,我也是参考他们来的,所以若是过程中有出错,最好的解决办法是上网百度,因为其中涉及很多环境、源码版本不同等情况。这里编译的是arm下的madplay。
其实下面的过程有点不好,尝试先编译安装madplay,看看出现什么错误,然后对应解决。要不然移植的精华都没有了。

一、我的移植环境
 linux操作系统:ubuntu 14.04
 交叉编译工具链:arm-2009q3
 
二、资料准备
madplay-0.15.0b.tar
libid3tag-0.15.0b.tar
libmad-0.15.0b.tar
下载地址:https://sourceforge.net/projects/mad/files/
zlib-1.2.3.tar
直接在网上搜


三、移植过程(我的路径:/root/experiment/madplay/)


1、创建文件夹 mkdir tarball src-arm target-arm
   把四个压缩包放到tarball下


2、解压(cd tarball)
   tar -zxvf madplay-0.15.0b.tar -C /root/experiment/madplay/src-arm/
   tar -zxvf libid3tag-0.15.0b.tar -C /root/experiment/madplay/src-arm/
   tar -zxvf libmad-0.15.0b.tar -C /root/experiment/madplay/src-arm/
   tar -zxvf zlib-1.2.3.tar -C /root/experiment/madplay/src-arm/
   
3、编译安装zlib
(1)进到解压后zlib对应的源码文件夹下


(2)设置所用的编译器以进行交叉编译:export CC=arm-linux-gcc


(3)配置:./configure --prefix=/root/experiment/madplay/target-arm/


(4)编译:make
   看打印信息是否是arm-linux-gcc
   
(5)make install


4、编译安装libid3tag
(1)进到解压后libid3tag对应的源码文件夹下


(2)配置:./configure --host=arm-linux --prefix=/root/experiment/madplay/target-arm/ CPPFLAGS=-I/root/experiment/madplay/target-arm/include/ LDFLAGS=-L/root/experiment/madplay/target-arm/lib/


(3)检查是否有checking whether we are cross compiling... yes


(4)编译:make
  
(5)make install  


5、编译安装libmad
(1)进到解压后libmad对应的源码文件夹下


(2)配置:./configure --host=arm-linux --prefix=/root/experiment/madplay/target-arm/ 
   cc1: error: unrecognized command line option "-fforce-mem"
   vi Makefile
   注释掉有-fforce-mem的那句


(3)检查是否有checking whether we are cross compiling... yes


(4)编译:make
  
(5)make install


6、编译安装madplay
(1)进到解压后madplay对应的源码文件夹下


(2)配置:./configure --host=arm-linux --prefix=/root/experiment/madplay/target-arm/ CPPFLAGS=-I/root/experiment/madplay/target-arm/include/ LDFLAGS=-L/root/experiment/madplay/target-arm/lib/


(3)检查是否有checking whether we are cross compiling... yes


(4)编译:make
  
(5)make install 


7.把编译生成的有关问价放到板子上
(1)libid3tag.so.0.2.0和libmad.so.0.2.0 在 target-arm/lib/
   madplay 在 target-arm/bin/


(2)修改名字
   libid3tag.so.0.2.0  改成 libid3tag.so.0
   libmad.so.0.2.0     改成 libmad.so.0
 
(3)libid3tag.so.0和libmad.so.0放到/lib目录下
   madplay 根据自己需要放


8、测试
(1)./madplay faded.mp3


出现错误:MPEG Audio Decoder 0.15.0 (beta) - Copyright (C) 2000-2003 Robert Leslie et al.
audio: /dev/dsp: No such file or directory


(2)处理方法1:
是声卡和madplay不兼容,网上有文章讲到,搜:audio: /dev/dsp: No such file or directory
命令改为:
./madplay -o wav:- faded.mp3| aplay


(3)处理方法2:重新编译内核使其支持OSS
<*>Device Drivers--->
     <*>sound card support --->
           <*>advanced linux soune architecture -->                
                       <*>OSS Mixer API
                       <*>OSS PCM (digital audio) API













猜你喜欢

转载自blog.csdn.net/DGY1223/article/details/80555515