当前位置:   article > 正文

GEC6818智能影音_gec6818音乐播放

gec6818音乐播放

一、环境配置安装:(虚拟机: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)是一种用于进程间通信的机制,它可以将一个进程的输出直接连接到另一个进程的输入,从而实现两个或多个进程之间的数据传输。

管道的作用主要有以下几个方面:

  1. 进程间通信:管道提供了一种简单的、同步的通信方式,使得不相关的进程之间可以进行数据交换和通信。

  2. 数据传输:通过将一个进程的输出连接到另一个进程的输入,可以实现数据的传输和共享。一个进程将数据写入管道,另一个进程从管道中读取数据。

  3. 父子进程间通信:管道通常用于具有父子关系的进程之间的通信。父进程可以将数据写入管道,子进程可以从管道中读取数据,实现简单的进程间通信。

  4. 增加并发性:通过将进程连接到管道,可以实现并发处理。例如,一个进程可以从管道中读取数据并进行处理,而另一个进程可以同时向管道中写入数据,从而实现并发的数据处理。

  5. 用于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、

①开始命令行

②暂停命令行-向管道写入

③快进命令行

④快退命令行

⑤切换上一个视频命令行

 ⑥切换下一个

 ⑦音量+-

⑧返回

 四、主函数功能

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/47612
推荐阅读
相关标签
  

闽ICP备14008679号