Bootstrap

一、项目简介客户端实现:

项目简介客户端实现:

使用mini2440开发板,实现播放音乐客户端

需要同时做三件事情:

  1. 播放音乐

  1. 监听按键(读设备文件和文件描述符)

  1. 上位机app有没有发出指令(监听网络socket,文件描述符,app通过网络发送数据)

对于上述事情的2和3使用select来监听文件描述符

因为存在监听和播放两个事情,需要使用并发,这里选择多进程来并发,因为多进程比较健壮,一个负责监听,一个负责播放音乐

创建三个进程

  1. 父进程创建子进程,子进程创建孙进程

  1. 父进程通过select来监听按键和网络

  1. 一旦父进程监听到按键或者网络描述符,创建子进程,子进程再创建孙进程,其中子进程等待孙进程结束

  1. 孙进程负责播放音乐

  1. 子进程当孙进程播放音乐结束后负责回收孙进程的资源

进程间通信:采用共享内存,因为共享内存效率较高

共享内存存放数据:

  1. 进程号

暂停:父进程给子进程和孙进程发送信号SIGSTOP

继续,父进程给子进程和孙进程发送信号SIGCONT

上一首音乐:获取当前播放音乐,遍历链表找到上一首;杀死子孙进程,重新启动进程播放音乐

播放模式:循环,单曲,随机

  1. 当前播放的音乐的名字

  1. 记住播放模式

链表:通过链表把u盘里面的歌曲读取出来放在链表里面(双向链表)

首先需要安装音频解码madpaly

具体安装步骤可以网上搜索

其次呢通过exce族启用新的进程调用madpaly

;