Music Player Daemon移植到嵌入式系统[一]

来源:互联网 发布:如何查找快递行业数据 编辑:程序博客网 时间:2024/05/18 11:47
***************************************************************************************************************************
作者:EasyWave                                                                                     时间:2013.10.06

类别:Linux 应用-Music Player Daemon                                          声明:转载,请保留链接

注意:如有错误,欢迎指正。这些是我学习的日志文章......

***************************************************************************************************************************

一:简介

        Music Player Daemon是一款广受欢迎的音乐服务端软件,提供了丰富的用于音乐播放的控制接口,支持MP3、Ogg Vorbis、FLAC、AAC、Mod和wave等音频格式,以及播放列表管理。采用C/S架构开发的MPD,用户可以使用各种前端来控制MPD的播放行为,也可以使用终端甚至网页来控制,因此能够满足各类用户的需求。

 

二:需要哪些组件

由于Music Player Daemon需要用到以下关键组件:

    1):Glib库,因此需要移植Glib库,不过这里不采用glib-2.12.13,最终选择glib-2.14.6的版本,因为在ncmpc-0.20的应用中需要用到Gregex,由于glib-2.12.13并不支持regex,而glib-2.14.6是可以支持的,故选择glib-2.14.6版本。

    2):ogg库,在Music Player Daemon中采用插件的方式来加载。

    3):FLAC库,在Music Player Daemon中采用插件的方式来加载。

    4):libmad库,在Music Player Daemon中采用插件的方式来加载。

    5):AAC库,在Music Player Daemon中采用插件的方式来加载。

有了以上的几个库,基本上是可以播放FLAC、OGG、MP3、AAC几种格式的音频文件了。

三:编译组件

    1): Glib组件的编译

      由前面的博文可知,编译Glib需要用到Gettext和libiconv等。如下所示:

如果想要编译成功glib就需要用到上图中前面三个库项目。gettext的编译脚本配置如下:

#!/bin/bashexport LDFLAGS="-L/usr/local/arm_linux_4.2/arm-none-linux-gnueabi/lib"export CFLAGS="-I/usr/local/arm_linux_4.2/arm-linux/include"export PKG_CONFIG_PATH="$INSTALL_PATH/lib/pkgconfig" #autoreconf -ivfif [ -f config.log ]; thenmake distcleanfiecho am_cv_func_working_getline=yes>arm-linux.cache &&./configure --prefix=$INSTALL_PATH \            --host=arm-none-linux-gnueabi \    --build=i486-linux-gnu \            --cache-file=arm-linux.cache \            --disable-dependency-tracking \    --enable-shared=yes \    --enable-static=no \            --with-gnu-ldif [ $? -eq 0 ]; then        make        if [ $? -eq 0 ]; then                make install                exit 0        fifiexit 1

libiconv的编译脚本如下:

export PKG_CONFIG_PATH="$INSTALL_PATH/lib/pkgconfig" #autoreconf -ivfif [ -f config.h ]; thenmake distcleanfi./configure --prefix=$INSTALL_PATH \            --host=arm-none-linux-gnueabi \    --build=i486-linux-gnu \    --enable-shared=no \    --enable-static=yes \            --with-gnu-ldif [ $? -eq 0 ]; then        make        if [ $? -eq 0 ]; then                make install                exit 0        fifiexit 1

Glib编译脚本如下:

export LDFLAGS="-L$INSTALL_PATH/lib -L/usr/local/arm_linux_4.2/arm-none-linux-gnueabi/lib"export CFLAGS="-I$INSTALL_PATH/include"export PKG_CONFIG_PATH="$INSTALL_PATH/lib/pkgconfig" export LIBS="-lasprintf -lgettextpo -lgettextsrc -lgettextlib -lintl"#autoreconf -ivfif [ -f config.h ]; thenmake distcleanfiecho glib_cv_stack_grows=no>arm-linux.cache && echo ac_cv_type_long_long=yes>>arm-linux.cache &&echo glib_cv_uscore=no>>arm-linux.cache &&echo ac_cv_func_posix_getpwuid_r=yes>>arm-linux.cache&&./configure --prefix=$INSTALL_PATH \            --host=arm-none-linux-gnueabi \    --build=i486-linux-gnu \            --cache-file=arm-linux.cache \    --enable-maintainer-mode \            --enable-debug=no \            --enable-ansi=no \    --enable-gc-friendly \            --disable-mem-pools \            --enable-threads \            --disable-rebuilds \            --disable-visibility \            --disable-largefile \            --enable-iconv-cach=auto \    --enable-shared=yes \    --enable-static=no \    --enable-fast-install=yes \    --disable-libtool-lock \            --enable-included-printf \            --enable-regex \            --enable-gtk-doc=no \            --enable-man=no \            --with-gnu-ldif [ $? -eq 0 ]; then        make        if [ $? -eq 0 ]; then                make install                exit 0        fifiexit 1

编译成功之后,就可以看到Glib库了,如下:[只列举一部分]

 

其它的第三方库,在下一篇文章再来分析,如下所示的第三方Audio编解码库。。。

原创粉丝点击