项目简介客户端实现:
使用mini2440开发板,实现播放音乐客户端
需要同时做三件事情:
播放音乐
监听按键(读设备文件和文件描述符)
上位机app有没有发出指令(监听网络socket,文件描述符,app通过网络发送数据)
对于上述事情的2和3使用select来监听文件描述符
因为存在监听和播放两个事情,需要使用并发,这里选择多进程来并发,因为多进程比较健壮,一个负责监听,一个负责播放音乐
创建三个进程
父进程创建子进程,子进程创建孙进程
父进程通过select来监听按键和网络
一旦父进程监听到按键或者网络描述符,创建子进程,子进程再创建孙进程,其中子进程等待孙进程结束
孙进程负责播放音乐
子进程当孙进程播放音乐结束后负责回收孙进程的资源
进程间通信:采用共享内存,因为共享内存效率较高
共享内存存放数据:
进程号
暂停:父进程给子进程和孙进程发送信号SIGSTOP
继续,父进程给子进程和孙进程发送信号SIGCONT
上一首音乐:获取当前播放音乐,遍历链表找到上一首;杀死子孙进程,重新启动进程播放音乐
播放模式:循环,单曲,随机
当前播放的音乐的名字
记住播放模式
链表:通过链表把u盘里面的歌曲读取出来放在链表里面(双向链表)
首先需要安装音频解码madpaly
具体安装步骤可以网上搜索
其次呢通过exce族启用新的进程调用madpaly