基于tiny6410的madplay播放器的移植

在移植madplay之前需要先将所需要的库移植到开发板的文件系统中。

现在每个解压后的文件夹中创建一个文件夹

zlib-1.1.4.tar.gz

解压:tar xvzf  zlib-1.1.4.tar.gz

   cd zlib-1.1.4

   mkdir __install

配置:./configure --shared --prefix=$(PWD)/__install

修改Makefile文件  将编译器更换为交叉工具

make

make install

拷贝 __install/lib/* 到开发板的/lib/下

libid3tag-0.15.1b.tar.gz

解压:tar xvzf  libid3tag-0.15.1b.tar.gz

cd libid3tag-0.15.1b

mkdir __install

配置:./configure --host=arm-linux  --prefix=$(PWD)/__install

make

make install

拷贝 __install/lib/* 到开发板的/lib/下

libmad-0.15.1b.tar.gz

tar xvzf  libmad-0.15.1b.tar.gz

mkdir __install

配置:./configure --host=arm-linux  --prefix=$(PWD)/__install

make

make install

如果出现编译选项--fforce-mem 则打开Makefile  删除--fforce-mem即可

拷贝 __install/lib/* 到开发板的/lib/下

madplay-0.15.2b.tar.gz

tar xvzf  madplay-0.15.2b.tar.gz

mkdir __install

配置:./configure --host=arm-linux  --prefix=$(PWD)/__install

make

make install

拷贝./_install/bin/madplay 到开发板的/sbin/目录下

然后安装alsa库

一、移植alsa的接口库和工具包

1、移植alsa-lib

a.可以到http://www.alsa-project.org/main/index.php/Download下载最新版本的alsa库(alsa-lib-1.0.29.tar.bz2)和工具包(alsa-utils-1.0.29.tar.bz2)。

b.解压alsa-lib-1.0.29.tar.bz2

c.配置alsa-lib

./configure --host=arm-linux  --prefix=/usr/local/share/arm-alsa  --enable-shared --disable-python --with-configdir=/usr/local/share/alsa  --with-plugindir=/usr/local/lib/alsa_lib CC=arm-linux-gcc CXX=arm-linux-g++ LD=arm-linux-ld

--host :为使用的交叉编译工具名,直接使用 arm-linux 也可以,根据 PC上安装的交叉编译工具来决定;

  --prefix:即 make install 时程序安装的目录,可以根据自己的情况进行修改,不用拘泥

--enable:开启功能  --disable :关闭功能,使用动态库不需要Python。

--with-configdir: alsa 配置文件所在目录,本目录要定好位置,交叉编译过后,移植到板子上时要和 PC 上路径一致。也即是说如果配置的时候指定的是/usr/local/share/alsa目录,那么你的配置文件在开发板上的绝对路径也要是/usr/local/share/alsa。默认 alsa配置文件会在安装目录里。这个很重要,不能PC和开发板两边不匹配。

--with-plugindir: alsa_lib 所在目录,目前意义不明,可以自由定位,也可以默认安装,先不用管。但是这里指定的目录会产生必要的库文件,放到开发板的时候也要路径和PC一样。

d.编译安装

make

make  install

2、移植alsa-utils

a.解压以后进入解压得到的目录

b.配置

./configure --host=arm-linux --prefix=/usr/local/share/arm-alsa CFLAGS="-I/usr/local/share/arm-alsa/include" LDFLAGS="-L/usr/local/share/arm-alsa/lib -lasound" --disable-alsamixer --disable-xmlto --with-alsa-inc-prefix=/usr/local/share/arm-alsa/include --with-alsa-prefix=/usr/local/share/arm-alsa/lib CC=arm-linux-gcc CXX=arm-linux-g++ LD=arm-linux-ld

CFLAGS:编译工具需要要的头文件目录,也就是前面编译库文件得到的头文件

LDFLAGS:编译工具需要要的库文件目录,也就是前面编译库文件得到的库文件

--with-alsa-inc-prefix:和CFLAGS一样  --with-alsa-prefix:和LDFLAGS一样。

c.编译和配置

make

make install

3、部署文件到开发板

进入到PC的/usr/local/share目录(之前配置时候指定的,根据你的配置选项决定),因为我们所有的安装目录都在这个目录下。

a.将/usr/local/share目录下的alsa,arm-alsa拷贝到开发板的/usr/local/share目录下

cp ./alsa  /home/OK6410/rootfs/usr/local/share  -rfa

cp ./arm-alsa  /home/OK6410/rootfs/usr/local/share -rfa

b.将/usr/local/lib目录下的alsa_lib拷贝到开发板上/usr/local/lib(自己先创建)目录下

cp ./alsa_lib  /home/OK6410/rootfs/usr/local/lib/ -rfa

c.将arm-alsa/lib目录下的文件拷贝到开发板根文件系统的/lib目录下

cp ./arm-alsa/lib/*  /home/OK6410/rootfs/lib –rfa

d.将arm-alsa/bin目录下的文件拷贝到/sbin目录下

cp ./arm-alsa/bin/*  /home/OK6410/rootfs/bin -rfa

e.将arm-alsa/sbin目录下的文件拷贝到/sbin目录下(如没有则不拷贝)

cp ./arm-alsa/sbin/*  /home/OK6410/rootfs/bin -rfa

f.添加环境变量,编辑开发板的文件系统里的/etc/profile,切记是开发板的文件系统不是PC的文件系统啊!!!在结尾添加

export ALSA_CONFIG_PATH=/usr/local/share/alsa/alsa.conf

安装alsa后

拷贝标准函数库

打开友善之臂给的文件系统  把其中的/lib/* -rf 拷贝到自己开发板的/lib/下

             把其中的/etc/rc.d -rf 拷贝到自己开发板的/etc/下

修改系统初始化脚本 把下面的添加到最后面

MODULE_PATH=/lib/modules/`uname -r`
if [ ! -f ${MODULE_PATH}/modules.dep.bb ]; then
        depmod
fi

/etc/rc.d/init.d/asocd start

然后用madplay即可播放音乐

时间: 2024-10-14 00:19:44

基于tiny6410的madplay播放器的移植的相关文章

毕业设计——基于STM32的音乐播放器设计(一)

基于STM32的音乐播放器设计, 源代码下载地址:http://download.csdn.net/detail/cxp2205455256/8334021      SD卡文件下载地址:http://download.csdn.net/detail/cxp2205455256/8334089 电路图下载地址:文件太大了,上传不了....... 以下是截图: 1.硬件电路 2.软件主界面 3.音乐播放器界面 4.音乐定时播放界面 5.音乐列表界面 6.日历功能界面 9.温度功能界面 10.计算器

基于Service的音乐播放器

这是一个基于Service组件的音乐播放器,程序的音乐将会由后台的Service组件负责播放,当后台的播放状态改变时,程序将会通过发送广播通知前台Activity更新界面:当用户单击前台Activity的界面按钮或拖动进度条时,系统通过发送广播通知后台Service来改变播放状态和播放指定音乐. 程序运行效果图:         程序代码: 程序界面类(MusicBox.java): package com.jph.musicbox; import com.jph.util.ConstUtil;

基于FFMPEG的跨平台播放器实现

一.背景介绍 FFmpeg是一款超级强大的开源多媒体编解码框架,提供了录制.转换以及流化音视频的完整解决方案,包含了libavcodec.libavformat等多个多媒体库.FFmpeg是基于linux平台下开发的,同样可以运行于android(其实也是linux,你懂得!).windows.Mac等平台. FFmpeg有多重要?列举一下我们常用的多媒体处理软件:暴风影音.QQ影音.KMP(这个牛掰啊).格式工厂……都使用了FFmpeg,可是他们都被FFmpeg刻上了耻辱柱:理由是把开源的东西

基于 ffmpeg 的跨平台播放器实现

https://www.qcloud.com/community/article/309889001486708756 背景: 随着游戏娱乐等直播业务的增长,在移动端观看直播的需求也日益迫切.但是移动端原生的播放器对各种直播流的支持却不是很好.Android 原生的 MediaPlayer 不支持 flv.hls 直播流,iOS 只支持标准的 HLS 流.本文介绍一种基于 ffplay 框架下的跨平台播放器的实现,且兼顾硬解码的实现. 播放器原理: 直观的讲,我们播放一个媒体文件一般需要5个基本

Android基于发展Service音乐播放器

这是一个基于Service组件的音乐播放器,程序的音乐将会由后台的Service组件负责播放,当后台的播放状态改变时,程序将会通过发送广播通知前台Activity更新界面:当用户单击前台Activity的界面button或拖动进度条时,系统通过发送广播通知后台Service来改变播放状态和播放指定音乐. 程序执行效果图:         watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVuZ3l1emhlbmdmYW4=/font/5a6L5L2T/

基于Jquery的音乐播放器进度条插件

自己基于豆瓣FM的ui仿写qq音乐时,基于Jquery手写的进度条插件,效果图如下: 主要特色: ① 可自适应挂载元素的宽度,也可以自己设置进度条宽度: ② 支持部分默认参数修改(具体见使用说明): ③ 允许最大时间为23:59:59,高于此值将默认修改为此值: ④ 可以自己控制进度条动画的开关及重置: ⑤ 可以获取进度条当前时间和宽度,与H5的audio标签协调使用. 使用说明: /* * 功能描述:播放器进度条 * 参数: * option:挂载父元素 * inTime:进度条时间长度 *

基于GStreamer编写Mp3播放器

一.简介 作者系统为CentOS6,本文在此基础上对Mp3播放器进行开发,需要使用mp3解码库libmad和gstreamer0.10-plugins-ugly,详细步骤如下.   二.操作步骤 1)下载 wget ftp://ftp.pbone.net/mirror/atrpms.net/el5-x86_64/atrpms/stable/libmad0-0.15.1b-4.el5.x86_64.rpm wget ftp://ftp.pbone.net/mirror/atrpms.net/el5

基于AVPlayer的音乐播放器

1,最近写了一个关于音乐播放器的demo,查阅资料的过程中,学会不少新东西.简单记录一下写的过程中遇到问题,备忘. 2,为了方便使用,将播放器写成单例  .h 先导入需要的库 #import <AudioToolbox/AudioToolbox.h> #import <AVFoundation/AVFoundation.h> #import <objc/runtime.h> 生成一个播放器的实例 @property (nonatomic,strong) AVPlayer

QT5:C++实现基于Multimedia的音乐播放器(序)

前段时间C++课设,决定做个播放器,于是参考了网上的代码后,做了个很简陋的音乐播放器(只写了MP3格式)出来,虽然功能甚少,但还是决定把过程记录一下. 成品如下图: 播放器功能: 上.下一首,音量控制 单曲和列表循环.随机播放模式 添加歌曲(因为懒,连删除歌曲都没写) 所用技术:QT5,C++. 整个程序继承QT的QWidget完成,界面用qss修饰(qss的语法和CSS几乎一模一样),整个播放器主要靠QT的multimedia来完成音乐解码和播放.QMediaplayer用于解析音频文件,QM