代码拉取完成,页面将自动刷新
作者:杨胜元 ,其他阅读地址
##1.功能介绍
播放器基于调用madplay实现音乐播放。
###1.1 功能
按键 | 功能 |
---|---|
无功能 | |
上一曲 | |
播放 | |
暂停 | |
下一曲 | |
退出 |
###1.2 程序流程
st=>start: 开机
op=>operation: 绘制界面
op2=>operation: 搜索图片
op3=>operation: 初始化线程池
op4=>operation: 初始化按键时间注册
op5=>operation: 注册按键事件
end=>end: 主函数死循环不退出
st->op->op3->op4->op5->end
##2.重要数据结构 ###2.1 but_evt.c
typedef struct but_evt{
int area[2][2];
void *(*func)(void *);
void *(*func_down)(void *);
//可加一个void * 类型用来传参
struct but_evt *next;
}but_evt;
名称 | 参数 | 值 | 说明 |
---|---|---|---|
area[0][0] |
无 | int | 矩形按键区域左上角x轴坐标 |
area[0][1] |
无 | int | 矩形按键区域左上角y轴坐标 |
area[1][0] |
无 | int | 矩形按键区域右下角x轴坐标 |
area[1][1] |
无 | int | 矩形按键区域右下角Y轴坐标 |
void (*func)(void*) |
void * | void * | 按键事件函数指针 |
void *(*func_down)(void *) |
void * | void * | 按键按下事件函数指针 |
###2.2 pthread_pool
typedef struct struct_pthread_pool{
pthread_t pthread_id;
struct struct_pthread_pool *next;
}struct_pthread_pool;
名称 | 参数 | 值 | 说明 |
---|---|---|---|
pthread_t pthread_id; | 无 | pthread_t | 线程池空闲线程id,方便监控的守护进程杀死过多的进程 |
##3. 文件说明
文件名 | 存储内容 | 说明 |
---|---|---|
暂未添加 | ||
.path | mp3搜索出来的路径 |
注意:icon文件必须放在程序同目录下
./
├── icon
│ ├── background.jpg
│ ├── forward.jpg
│ ├── forward_on.jpg
│ ├── pause.jpg
│ ├── pause_on.jpg
│ ├── play.jpg
│ ├── play_on.jpg
│ ├── rewind.jpg
│ ├── rewind_on.jpg
│ ├── sound.jpg
│ ├── sound_on.jpg
│ ├── stop.jpg
│ └── stop_on.jpg
└── main
##4. madplay
应用中使用system调用madplay播放音频后,无法直接控制暂停/停止等操作,直接对madplay进程进行控制
"killall -19 madplay"
使进程挂起以暂停"killall -18 madplay"
使进程恢复运行"killall -9 madplay"
终止进程以停止。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。