EDA365电子论坛网

标题: 基于ARM的LCD(800*480)触摸屏实现音频、视频播放、图像显示功能 [打印本页]

作者: 启扬智能    时间: 2020-8-26 11:53
标题: 基于ARM的LCD(800*480)触摸屏实现音频、视频播放、图像显示功能

设计目标:* J9 A) ]( F6 Q  ~
①实现用户注册、用户名、密码输入登录功能
9 d# T$ D8 }3 ^% J+ h* \. V②实现bmp图片居中显示、左右切换、缩放3 a$ z" J3 ~# Z7 T! v" f
③实现音乐(MP3)的播放、暂停、切歌、播放模式设定

; e6 j* k* p" u) f) m# R" Q$ a( E6 R
④实现视频(WMV)的播放、暂停、切换

部分效果如下:

视频操作部分
, z, S8 y1 y% i  g6 C$ e* `# j! E" X

点击切换6 `# `: |1 x9 C# `- s! o+ c! O$ F

划动切换与缩小
3 S5 V% h, g) q! e/ C% A

划动退出
: C, u& V0 p% c( Y9 @2 r

**注意!注意!**编译命令是用 arm-linux-gcc,而不是gcc的

主头文件(各部分通用的函数、定义)7 j1 H0 s; G* d
myhead.h

#include <stdio.h>        #include <string.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <stdbool.h>#include <sys/mman.h>#include <linux/input.h>#include <errno.h>#include <dirent.h>#ifndef MYHEAD_H#define MYHEAD_Hstruct input_event myevent;                                                                        //定义输入子系统模型有关的结构体变量int tsfd ;                                                                                                        //触摸屏驱动int dst;                                                                                                          //显示屏驱动int tx1 = 0,ty1 = 0,tx2 = 0,ty2 = 0;                                                //触摸屏返回值//重置触摸屏坐标返回值void clear(){        tx1 = 0, ty1 = 0,tx2 = 0,ty2 = 0;}//打开显示屏int display_open(){        dst = open("/dev/fb0",O_RDWR);                                                        //打开显示屏驱动        if(dst == -1)        {                printf("显示屏打开失败!\n");                return -1;        }}//关闭显示屏int display_close(){        close(dst);}//打开触摸屏int touch_open()        {                tsfd=open("/dev/input/event0",O_RDWR);                                        //打开触摸屏驱动                if(tsfd==-1)        {                perror("打开触摸屏失败!\n");                return -1;        }        return 0;        }//关闭触摸屏int touch_close()        {        close(tsfd);        return 0;}//显示任意位置大小缩放的BMP图片bool showbmp(char *bmppath, int n)        {        int w = 0;        int h = 0;        int src = open(bmppath , O_RDWR);                lseek(src, 18 ,SEEK_SET);                                                                //获取BMP图片的宽w信息        read(src, &w, 4);        lseek(src, 22 [color=rgb(153, 153, 15魘1
作者: modengxian111    时间: 2020-8-26 18:14
动画不错,学习学习




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2