一、环境配置安装:(虚拟机:Ubuntu)
1、在Linux系统上使用APT包管理器安装madplay软件的命令(madplay是一个用于播放MPEG音频文件的命令行工具)
install apt-get install madplay
2、在Linux系统上使用APT包管理器安装mplayer软件的命令(mplayer是一个用于播放MPEG音频文件的命令行工具)
install apt-get install mplayer
3、移植mplayer和madplayer到gec6818开发板(交叉编译时不用)
https://blog.csdn.net/mumuynsi/article/details/127817301?spm=1001.2014.3001.5506
二、音乐实现
首先创建一个数组music[3][100]={''music1.mp3'',''music2.mp3'',''music3.mp3''}存放三首歌,初始变量n=0代表三首音乐位置。
1、在Linux系统上终止运行名为"madplay"的进程。通过使用"killall -9"命令,可以强制终止该进程,无论它是否响应终止信号。
system(''killall -9 madplay'');
2、
①播放:system(''madplay music[0] &'');
②暂停:killall 暂停madplay进程 | system(killall -STOP madplay &'');
③继续:killall 暂停madplay进程 | system(killall -CONT madplay &'');
④循环:system(''madplay music[0] -r &'') -r:循环播放
⑤实现播放上一首:①n--,if(n<0)n=2; ②system(''killall -9 madplay'');③:system(''madplay music[n] &'')
⑥实现播放下一首:①n++,if(n>2)n=0; ②system(''killall -9 madplay'');③:system(''madplay music[n] &'')
⑦返回功能选择界面:system(''killall -9 madplay'');break;
三、视频实现
管道(Pipe)是一种用于进程间通信的机制,它可以将一个进程的输出直接连接到另一个进程的输入,从而实现两个或多个进程之间的数据传输。
管道的作用主要有以下几个方面:
进程间通信:管道提供了一种简单的、同步的通信方式,使得不相关的进程之间可以进行数据交换和通信。
数据传输:通过将一个进程的输出连接到另一个进程的输入,可以实现数据的传输和共享。一个进程将数据写入管道,另一个进程从管道中读取数据。
父子进程间通信:管道通常用于具有父子关系的进程之间的通信。父进程可以将数据写入管道,子进程可以从管道中读取数据,实现简单的进程间通信。
增加并发性:通过将进程连接到管道,可以实现并发处理。例如,一个进程可以从管道中读取数据并进行处理,而另一个进程可以同时向管道中写入数据,从而实现并发的数据处理。
用于shell命令:管道也广泛用于shell脚本中,可以将一个命令的输出直接传递给另一个命令作为输入,以实现一系列命令的组合和处理。
需要注意的是,管道是单向的,只能在一个方向上传输数据。而且,管道的容量是有限的,当管道的缓冲区满时,写入操作可能会被阻塞,直到有另一个进程来读取数据。因此,在使用管道进行进程间通信时,需要进行适当的同步和处理,以避免数据丢失或死锁的情况发生。
1、初始化有名管道:
创建管道文件:使用mkfifo函数创建管道。
2、管道文件命令写入函数
3、
① 首先创建一个数组存入三个准备好的avi格式的视频。
n=0;初始变量n=0代表三个视频数组的位置。
②将存放的视频放入一个格式化的字符串数组中,方便后面使用。
sprintf(videopath,''mplayer -slave -quiet - input file=/tmp/fifo -geometry 100:0 -zoom -x 600 -y 480 %s &'',videooname[n]);
解析该函数里面参数的意义:
mplayer
默认情况下是以交互式模式运行的,它等待用户在命令行上输入命令来控制播放器的行为。但是,通过简单地向命令行发送命令无法直接控制mplayer
的行为。要实现通过命令直接控制
mplayer
,可以使用-slave
参数将其切换到从属模式,并通过其他方式向其发送命令。其中一种常见的方式就是通过管道(无名管道或有名管道)向mplayer
发送命令。
(这里的管道名为/tmp/fifo,上面已经创建),也就是说mplayer接收命令需要一个输入命令媒介(管道),进而通过mplayer控制视频的播放、暂停、加速、减速、上下个的功能。
4、
①开始命令行
②暂停命令行-向管道写入
③快进命令行
④快退命令行
⑤切换上一个视频命令行
⑥切换下一个
⑦音量+-
⑧返回
四、主函数功能