TQ2440 上用多线程实现的mp3 播放器

    概述:        @  这是一个基于 tq2440开发板的, 使用用多线程实现的mp3播放器。        @  从软件层次来看, 驱动层包括  按键驱动 和 声卡驱动, 需要自己实现的是 按键驱动; 应用层有 MP3主播放程序 和 Madplay播放器。         @  除了madplay 播放器播放MP3, 为了好玩 ,还将蜂鸣器播放音乐的功能加了进去, 不过要用  下的一段 代码转换 编码数组 为程序可读的文件。@  由于 madplay 编译后 本身会只会生成 madplay这个
摘要由CSDN通过智能技术生成

    概述:

        (1)  这是一个基于 TQ2440开发板的, 使用用多线程实现的mp3播放器。

        (2)  从软件层次来看, 驱动层包括  按键驱动 和 声卡驱动, 需要自己实现的是 按键驱动; 应用层有 MP3主播放程序 和 Madplay播放器程序。 

        (3)  除了用madplay 播放器播放MP3, 为了好玩 ,还将蜂鸣器播放音乐的功能加了进去, 不过要用  一段 代码转换 编码数组 为程序可读的文件。
        (4)  由于 madplay 编译后 本身会只会生成 madplay这个可执行文件, 为了能将madplay 的方法用到自己的代码中, 还需要修改 madplay 的Makefile 和 一些源代码。 最好是将 main()函数源文件 送到madplay目录中去 一起编译。
        (5)  当然 madplay本身 还需要一些库的支持, 这些库都在资源中了。

   

    正文:

 

    一·系统架构:

 

 

图一  MP3 系统架构图

 

    基于TQ2440开发板, 利用板上四个按键资源, K1~K4分别实现以下功能:

    1.  K1: Play /Pause;

    2.  K2: Stop;

    3.  K3: Prev Song;

    4.  K4: Next Song;

 

    二、程序流程图:

  

 

 

 

 

图二  MP3 主程序流程图   

 

 

    三、准备工作(略):

    在实现MP3 程序代码之前, 必须做好以下工作:

 

    1. 一个可以启动 linux 内核的Uboot,最好是NFS 方式启动内核;

    2. 制作好的linux 内核,并将声卡芯片(UDA1341)编译进内核;

    3. 根文件系统;

    4. Button 驱动,笔者的按键驱动 在按下和抬起时都能读到键值变化,并且4个键值是以 一个整数按 位图方式放回用户空间供读取的, 这样的好处是 可以随时监控按键状态 并且 支持组合键的操作;

    5. madplay 的源码和 库文件支持,你需要弄到这些文件 libid3tag-0.15.1b.tar.gzlibmad-0.15.1b.tar.gzzlib-1.1.4.tar.gzmadplay-0.15.2b.tar.gz;

 

 

    四、代码实现:

     1. 全局变量及预定义:    

 

        

 

     2. 主函数:

  

        

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值