项目分析报告:
系统名称:使用mplayer的控制器
创作时间:2024-7-25
最新修改时间:2024-7-25
最新版本号: 1.0
项目背景:
方便使用并练习学习,用于回顾最近所学知识,我们将制作关于linux的mplayer的使用控制代码,以实现视频音频的打开播放,切换,播放模式选择,进度调控以及播放速度等应用。
项目功能:
- 播放列表
- 开始/暂停
- 停止
- 上一个
- 下一个
- 倍速播放
- 定位播放
- 播放方式
- 退出
项目框架:
利用fork产生父子进程,通过子进程的各种调用,进行一边执行我们的代码,一边调用mplayer播放器来实现相应的功能,功能阐述如下:
- 多级页面要求:一级页面展示项目功能(用于给用户清晰明了的界面体验)
二级页面细分,将一级页面对应所需要求进行展示,如:倍速选择等!
- 子程序函数封装调用,代码由主体代码fork产生进程调用,通过有名管道为mplayer输入相应调用参数,与编程代码相结合调用实现功能。
- 使用标志位控制一级二级页面的输出,预防多页面同时打印,导致逻辑顺序紊乱。
- 死亡标志位用于控制多子进程多次调用mplayer,导致多视频同时播放。
项目模块分析介绍:
主函数调用:进入菜单
主体函数内容流程: 利用标志位判断,预防一级二级菜单冲突
菜单列表
用户选择调用
菜单转载进入使用相应函数
子进程播放 有名管道输入控制
视频播放结束 子进程消亡
新视频播放 暂停
结束
项目流程图:
项目交互的函数接口和数据类型:
1.封装fork父子进程int play_music(int num),子进程用于mplayer播放视频以及结束消亡。
2.菜单函数int show_menu():统一调度。
3.打印页面信息函数
Int show_top()
void play_music_way()
Int play_music_seek()
Int play_music_speed()
Int play_music_list()
4.其他功能函数接口:
信号signal(SIGCHLD,hander)
结束播放int play_music_stop()
切歌int play_music_before()
Int play_music_after()
程序退出int play_music_quit()
主体
主函数调用
头文件声明