基于GEC6818开发板的视频播放

基于GEC6818开发板的视频播放

//1,封装函数,定义获取触摸屏数据函数
int get_ts()	//获取一次点击的坐标,坐标放在ts_x,ts_y
{
	//1,打开触摸屏文件 "/dev/input/event0"
	int fd = open("/dev/input/event0", O_RDWR);
	if(-1 == fd)
	{
		perror("open ts failed");
		return -1;
	}
	
	struct input_event buf;	

	int flag = 0;
	
	//2,读取触摸屏文件数据
	while(1)//练习:优化代码ts.c, 实现效果,点击屏幕,在终端上输出点击的坐标 (x,y)
	{
		read(fd, &buf, sizeof(buf));
		//printf("%d---%d---%d\n", buf.type, buf.code, buf.value);
		//筛选得到X轴坐标,Y轴坐标
		if(buf.type == EV_ABS && buf.code == ABS_X && flag == 0)
		{
			ts_x =  buf.value;
			flag = 1;
		}
		if(buf.type == EV_ABS && buf.code == ABS_Y && flag == 1)
		{
			ts_y = buf.value;
			flag = 2;
		}
		
		if(flag == 2)
		{
			//加一个限定条件,要获取到坐标之后,在输出坐标
			printf("(%d, %d)\n", ts_x, ts_y);
			flag = 0;
			break;	//获取到一次坐标之后,跳出循环
		}
	}

	close(fd);
	
}
int init_mplayer()//创建一个管道文件并且打开它,返回管道文件的文件描述符
{
	//创建一个管道文件
	int ret = mkfifo("/tmp/myfifo", 0777);
	if(-1 == ret)
	{
		perror("mkfifo failed");
	}
	
	int fd = open("/tmp/myfifo", O_RDWR);
	if(-1 == fd)
	{
		perror("open fifo failed");
		return -1;
	}
	return fd;
}

int get_video(){
	
	int fd = init_mplayer();	//初始化视频播放器

	//1,显示视频播放界面
	system("./jpeg.show video.jpg");
	
	//2,播放视频
	system("./mplayer -slave -quiet -input file=/tmp/myfifo -geometry 30:30 -zoom -x 720 -y 400 LND.avi &");
	
	//3,获取用户点击信息
	get_ts();	
		if(ts_x>28 && ts_x<110 && ts_y>260 && ts_y<329)
		{
			//1,显示视频播放界面
	system("./jpeg.show video.jpg");
	
	//2,播放视频
	system("./mplayer -slave -quiet -input file=/tmp/myfifo -geometry 30:30 -zoom -x 740 -y 400 LND.avi &");
		}
		
		if(ts_x>44 && ts_x<106 && ts_y>419 && ts_y<480)//快退	
		{
			//改变播放状态的命令
			write(fd, "seek -10\n", 9);
		}
		if(ts_x>134 && ts_x<196 && ts_y>419 && ts_y<480)//快进
		{
			write(fd, "seek 10\n", 8);
		}
		
		if(ts_x>414 && ts_x<480 && ts_y>419 && ts_y<480)//zant
		{
			write(fd, "pause\n", 6);
		}
		if(ts_x>505 && ts_x<567 && ts_y>419 && ts_y<480)//yljia
		{
			write(fd, "volume 20\n", 10);
		}
		if(ts_x>595 && ts_x<657 && ts_y>419 && ts_y<480)//yljian
		{
			write(fd, "volume -20\n", 11);
		}
		if(ts_x>227 && ts_x<291 && ts_y>419 && ts_y<480)//jiny
		{
			write(fd, "mute 1\n", 7);
		}
		if(ts_x>323 && ts_x<384 && ts_y>419 && ts_y<480)//huifu
		{
			write(fd,  "mute 0\n	", 7);
		}
		if(ts_x>686 && ts_x<746 && ts_y>419 && ts_y<480)//退出
		{
			write(fd, "quit\n", 5);
			system("./jpeg.show jiem.jpg");
		}break;
	}
}

视频演示链接:https://pan.baidu.com/s/1XDvzlSw-3sSbQHIbhBQm-w 提取码: e7ma

你可能感兴趣的:(嵌入式,嵌入式,ARM,ubuntu,视频播放)