[关闭]
@rfish 2015-09-05T06:13:10.000000Z 字数 1140 阅读 1727

项目二 MP3播放器

培训


1.功能介绍

播放器基于调用madplay实现音乐播放。

1.1 功能

按键 功能
无功能
上一曲
播放
暂停
下一曲
退出

1.2 程序流程

Created with Raphaël 2.1.2开机绘制界面初始化线程池初始化按键时间注册注册按键事件主函数死循环不退出

2.重要数据结构

2.1 but_evt.c

  1. typedef struct but_evt{
  2. int area[2][2];
  3. void *(*func)(void *);
  4. void *(*func_down)(void *);
  5. //可加一个void * 类型用来传参
  6. struct but_evt *next;
  7. }but_evt;
名称 参数 说明
area[0][0] int 矩形按键区域左上角x轴坐标
area0 int 矩形按键区域左上角y轴坐标
area1[0] int 矩形按键区域右下角x轴坐标
area1 int 矩形按键区域右下角Y轴坐标
void (*func)(void*) void * void * 按键事件函数指针
void *(*func_down)(void *) void * void * 按键按下事件函数指针

2.2 pthread_pool

  1. typedef struct struct_pthread_pool{
  2. pthread_t pthread_id;
  3. struct struct_pthread_pool *next;
  4. }struct_pthread_pool;
名称 参数 说明
pthread_t pthread_id; pthread_t 线程池空闲线程id,方便监控的守护进程杀死过多的进程

3. 文件说明

文件名 存储内容 说明
.but_evt 按键事件注册链表 暂未添加
.path mp3搜索出来的路径

注意:icon文件必须放在程序同目录下

  1. ./
  2. ├── icon
  3.    ├── background.jpg
  4.    ├── forward.jpg
  5.    ├── forward_on.jpg
  6.    ├── pause.jpg
  7.    ├── pause_on.jpg
  8.    ├── play.jpg
  9.    ├── play_on.jpg
  10.    ├── rewind.jpg
  11.    ├── rewind_on.jpg
  12.    ├── sound.jpg
  13.    ├── sound_on.jpg
  14.    ├── stop.jpg
  15.    └── stop_on.jpg
  16. └── main

4. madplay

应用中使用system调用madplay播放音频后,无法直接控制暂停/停止等操作,直接对madplay进程进行控制

  • "killall -19 madplay"使进程挂起以暂停
  • "killall -18 madplay"使进程恢复运行
  • "killall -9 madplay"终止进程以停止。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注