哔哩哔哩项目视频链接:https://www.bilibili.com/video/BV1Hp4y1v7Pt
代码资料链接:https://download.csdn.net/download/mbs520/16668844
项目功能展示:
一、开机显示登入界面,可密码管理员登入,也可以免密码普通用户登入

二、登入后显示桌面,显示5个应用 ,分别是图片、视频、音乐、设置、文件管理

三、音乐相册功能,播放图片同时播放背景音乐,可以左右滑动切换图片等操作

四、视频播放功能,可以播放avi,mp4等格式视频

五、音乐播放器,可以播放mp3格式的音频

六、设置壁纸,可以根据喜好设置自己喜欢的壁纸

七、文件管理,可以对文件进行预览和删除

一、项目课题:

基于ARM平台的广告机系统设计
应用:电梯、公交车、公共场合。。。

项目基本功能:
1.广告图片切换(可以播放对应背景音乐)
2.广告视频播放

3.可以检索某个目录下所有的图片或多媒体数据(音乐,视频) readdir
显示出来,对其进行管理(加入播放列表,将其从列表移除)
(增删改查之类的多媒体操作,可以使用Secure CRT终端显示并输入)

项目拓展功能:(供参考,可自行决定更多功能)
1.使用触摸屏点击,实现多媒体数据管理(用户交互)
2.添加密码输入界面,实现用户管理机制
例如: root管理员权限:多媒体添加、删除、调整顺序、用户管理…
gec普通用户权限:多媒体浏览、调整顺序…
3.递归检索,可检索低层的所有子目录。(需要注意文件路径,绝对路径)

二、项目设计

1、图片准备
下载大量图片,用画图软件转换为.bmp图片方便显示

系统图片:

斗罗大陆广告图片:

二、视频准备

准备若干个斗罗视频,mp4,avi的都可以,avi的视频播放的更加流畅

三、音乐准备
下载几首斗罗主题曲,博主比较穷,找了半天找到一首不要钱的斗罗大陆,用中文不好传输我就把名字改成了英文。

三、代码编写

代码文件目录:

代码量比较多,所以用分文件管理,Makefile编译。
1、利用opendir函数打开文件目录检索文件
2、利用内核链表保存文件名方便管理

typedef struct kernel_list{// 1.数据域,保存文件名char buf[256];// 2.指针域(小结构体)struct list_head list;
}kl_st, *kl_pt;

3、利用.bmp .ebm图片代码驱动播放图片文件(其他)

//显示bmp
void show_bmp(char *bmp_patpname,int x_offset,int y_offset)
{/*向lcd文件中写入像素点数据*///打开bmp图片int  bmp_fd = open(bmp_patpname, O_RDONLY);//完整路径 /mnt/hgfs/shear/day004/1.bmpif(bmp_fd == -1){perror("打开bmp图片失败");exit(-1);}//读取图片头部信息bmp_head myhead;read(bmp_fd, &myhead, sizeof(bmp_head));//申请缓冲区char tmp_buf[myhead.width*myhead.height*3];//清空缓冲区bzero(tmp_buf,sizeof(tmp_buf));//读取图片数据read(bmp_fd, tmp_buf, sizeof(tmp_buf));//关闭图片文件close(bmp_fd);//将数据存入映射内存//将数据存入映射内存int i,j;for(i=0; i<myhead.height; i++)for(j=0; j<myhead.width; j++){*(FB+((i+y_offset)*800+j+x_offset)*4) = tmp_buf[((myhead.height-1-i)*myhead.width+j)*3];*(FB+((i+y_offset)*800+j+x_offset)*4+1) = tmp_buf[((myhead.height-1-i)*myhead.width+j)*3+1];*(FB+((i+y_offset)*800+j+x_offset)*4+2) = tmp_buf[((myhead.height-1-i)*myhead.width+j)*3+2];*(FB+((i+y_offset)*800+j+x_offset)*4+3) = 0x00<<24;}}

4、用mplayer软件播放视频与音乐,相关软件文件已经上传到资料链接

mplayer使用方法:
首先把mplayer上传到开发板的 /usr/bin 文件目录下 使用一下mplayer 命令,看一下能否使用

命令使用:
1)、播放视频:播放起始位置(240,70),显示区域大小400*240,&后台播放

system("mplayer -geometry 240:70 -zoom -x 400 -y 240 ./mp4/dl.mp4 &");

2)、播放音乐:后台播放dl.mp3

system("mplayer  ./dl.mp3 &");

代码展示

由于代码过长,这里只显示部分代码

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>
#include <string.h>
#include "lcd.h"
#include "ts.h"
#include "kl_list.h"
#include "list.h"
#include "font.h"
//密码
int pswd_cheak(char *psword);
//显示文件名
void LCD_show_filename(int x,int y,kl_pt head);//应用界面触摸选择
int app_choose(void);
//文件选择
int file_choose(void);
//图片
void photo(void);
//视频
void video(void);
//音乐
void music(void);
//设置
void settings(void);
//移除文件
void file_del(char *phname,kl_pt head);
//文件触摸选项
int file_choose(void);
//扫描tailname文件到phname
void file_scan(char *phname,char *tailname);
//移除文件
void file_del(char *phname,kl_pt head);
//文件管理
void file_manage(const char *path_name);
//文件管理器触摸选项
int file_mag_choose(void);kl_pt all_head;//递归链
char walpar[64]="bz1.bmp";//壁纸
int root=0;//0:游客 1:root用户//主函数
int main(int argc, const char *argv[])
{all_head=kl_list_init();//初始化递归链if(argc != 2){perror("input error\n");return 0;}char psword[]="1234";//设置密码int x=0,y=0;int app_val;open_lcd();//初始化lCdopen_ts();//初始化触摸屏Init_Font();// 初始化字库show_ebm("./ebm/14.ebm");//显示密码界面root = pswd_cheak(psword);//获取登入权限while(1){show_bmp(walpar,0,0);//显示壁纸                        show_bmp("./bmp/15.bmp",110,190);//显示应用图标show_bmp("./bmp/16.bmp",270,190);show_bmp("./bmp/17.bmp",430,190);show_bmp("./bmp/18.bmp",590,190);show_bmp("./bmp/file.bmp",590,70);while(1){app_val=app_choose();//获取触摸屏信息if(app_val){switch(app_val){case 1:photo();break;//应用case 2:video();break;case 3:music();break;case 4:settings();break;case 5:file_manage(".");//递归遍历}break;}}}close_lcd();//关闭文件close_ts();//关闭字库UnInit_Font();return 0;}

资料说明:
1、拷贝整个目录到开发板(tftp nfs u盘…)

2、运行a.out

./a.out ./

Linux项目设计:斗罗大陆宣传系统、基于Linux系统的媒体播放器、可播放音视频图片(基于gec6818项目设计)相关推荐

  1. Android中调用系统已安装的播放器来播放网络流媒体视频

    2019独角兽企业重金招聘Python工程师标准>>> 实现思路比较简单几行代码就可以搞定,在界面放一个Button或者带有播放图标的imageview,点击事件中调用本地播放器来播 ...

  2. 鸿蒙系统怎样去掉下拉音乐播放器,windows10系统下怎样取消音乐播放器默认播放器...

    一位用户反馈自己的windows10系统电脑中,默认音乐播放器是百度音乐,因为自己并不喜欢用百度音乐来播放歌曲,就想将其取消掉.这该如何操作呢?接下来,就随小编看看windows10系统下取消音乐播放 ...

  3. Win10系统播放器无法播放视频怎么办【系统天地】

    Win10自带的视频播放器叫做"电影和电视",简洁轻巧,如果没有安装第三方视频播放器,那么"电影和电视"也是个不错的选择,不过有时受其他软件或情况的影响,播放器 ...

  4. QT 音视频开发 基于gstreamer框架

    在音视频领域接触最多实现的方案通常是通过ffmpeg(PC和sever端居多)或者硬件厂家的的SDK实现特定硬件的编解码功能(机顶盒,电视等嵌入式设备).国内不太常用的解决方案gstreamer gs ...

  5. html5播放器android,分享一个Html5+video 基于mui 5+的视频播放器

    一直没有找到一款适合在MUI上的播放器,网上很多都是基于JQ的播放,样式不好看,也难修改,不好用难于兼职安卓和苹果手机, 实在没办法,只能亲自操刀,自己写一个播放器了,给遇到我一样情况的朋友们,封装起 ...

  6. linux下网络播放器,月亮播放器:Linux无广告看片神器

    在 LinuxMint/Ubuntu 系列系统中,使用如下 PPA 安装月亮播放器: sudo add-apt-repository ppa:cos-lyk/moonsoft sudo apt upd ...

  7. android 根据指定路径获取本地视频列表显示,点击缩略图调用系统播放器进行播放

    第一步,MainActivity.class类代码 如下: package com.learn.lister.systemvediorecord;import android.app.Activity ...

  8. 【上传文件】基于阿里云的视频点播VOD、对象存储OSS实现音视频图片等文件上传

    一.效果演示 a.测试界面初始化 b.点击[上传视频] c.点击[开始上传] d.点击[上传音频]选择音频之后点击[开始上传] c.点击[上传图片],注意图片上传为单按钮,选择文件之后自动完成上传 d ...

  9. 基于ffmpeg的播放器,播放m3u8文件时,seek问题

    文章目录 1,准备知识, seek代码流程: 策略: 2,问题描述, 3,原因分析及其修改, 拿到这个问题,在不debug代码或查看日志的情况下,根据上面1的准备知识,可以大概判断出原因. 针对问题视 ...

最新文章

  1. 数据挖据之GeoHash核心原理解析
  2. MySQL 最新8.0版本windows系统下数据库的安装、配置与使用实例演示,客户端使用ip连接数据库失败问题处理
  3. 打造数字化服务能力,中国联通如何借助云原生技术实现增长突围?
  4. linux设置静态IP及克隆后修改IP和hostname
  5. 验证码 -图形图像识别的算法。http://blog.csdn.net/xtalk2008/archive/2007/11/01/1861310.aspx...
  6. 剑指offer:剪绳子(找规律,贪心算法,动态规划)
  7. 垃圾回收中的finalize方法
  8. 基于linux环境tcp网络编程(在线英英词典)文档 [1]
  9. origin中画1:1线
  10. N,N-二甲基十二烷基胺(CAS 112-18-5)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  11. Android虚拟按键的适配
  12. Retrofit2+Rxjava2+okHttp 网络框架封装
  13. Java流程控制练习题
  14. 机器学习葡萄酒质量_通过数据和机器学习制作出更好的啤酒和葡萄酒
  15. 深度学习研究基因组学
  16. win10系统如果更改战网服务器,win10系统无法登录战网的四种解决方法
  17. 修改滚动条样式的方法
  18. Day06-Python文件和数据格式化
  19. 什么是B/S开发技术?
  20. 协议篇————7、HTTP协议详解

热门文章

  1. MySQL之初始化配置
  2. 魅族手机动态修改系统版本参数
  3. php执行dmidecode,linux必学的命令
  4. composer安装及配置(Windows)
  5. 转一篇报道:想要个机器人?试试DIY吧
  6. mate7 刷机 android 7,华为Mate7刷机过程图解及刷前准备
  7. WD企业盘参数对照表
  8. 计算机试题ab级,word计算机一级试题
  9. java main类型_java中main方法的返回类型是?
  10. 从零开始做App 系列之项目立项+预估时间篇