• 【定制项目】【M15 消防安全宣传】主要模块:视频 + 音频 + 图标 + 问答游戏


    目录

    一、项目需求

    二、效果展示

    1、动态视频

    2、切片效果图 

    主页

    公益宣传片(视频MP4), 火灾启示录(视频MP4),消防宣教员(视频MP4),消防设施原理(视频MP4) 

    视频播放页 -  自动播放 + 循环播放

     消防标识识别模块

    游戏问答模块

    三、项目架构

    四、项目分析

    1、http服务器:go 语言

    http 服务器代码

    打开浏览器命令代码

    2、前端技术 html + javascript;

    3、动态配置项

    五、更多案例


    一、项目需求

    项目名称:【消防安全宣传】

    运行环境:触摸屏一体机。一体机开机后,程序自启动运行,全屏显示,禁用其他程序。

    功能模块(共6个模块):公益宣传片(视频MP4), 火灾启示录(视频MP4),消防宣教员(视频MP4),消防设施原理(视频MP4),消防标识识别(大图标宣传展示),消防体验游戏(互动游戏)。

    功能说明:各个模块图片,视频,音乐等素材可动态配置,实时生效;

                      游戏问题数量可定义N个,程序自动随机选择不重复的问题;

    项目工期:15个工作日。

    二、效果展示

    1、动态视频

    2、切片效果图 

    主页

    公益宣传片(视频MP4), 火灾启示录(视频MP4),消防宣教员(视频MP4),消防设施原理(视频MP4) 

    视频播放页 -  自动播放 + 循环播放

     消防标识识别模块

    点击图标后放大效果

    游戏问答模块

    开始页 

    问题页

    答案提示页

    问答结束页

    三、项目架构

    • 触摸屏 Windows系统,分辨率 1920*1080px;(代码支持运行环境Windows,Linux类系统。)
    • 可执行程序exe 开机自启动,自动全屏最大化;
    • B/S架构,支持Chrome,IE,QQ等主流浏览器;
    • http服务器:go 语言。

    四、项目分析

    1、http服务器go 语言

    http 服务器代码

    1. func main() {
    2. go browser()
    3. r := gin.Default()
    4. r.StaticFS("/static", http.Dir("./static"))
    5. r.Run(":" + strconv.Itoa(http_port)) //默认在本地8080端口启动服务
    6. }

    打开浏览器命令代码

    1. func browser(){
    2. cmd := exec.Command("./Browser/chrome.exe", "--kiosk", "http://127.0.0.1:" + strconv.Itoa(http_port) + "/static/index.html")
    3. err := cmd.Run()
    4. fmt.Printf("%s, error:%v \n", "cmd", err)
    5. }

    2、前端技术 html + javascript

    1. <div id="base" class="">
    2. <!-- 背景 (Image) -->
    3. <div id="u1" class="ax_default image">
    4. <img id="u1_img" class="img " src="images/index/u1.png" />
    5. <div id="u1_text" class="text " style="display:none; visibility: hidden">
    6. <p></p>
    7. </div>
    8. </div>
    9. <!-- 1 公益 (Image) -->
    10. <div id="u2" class="ax_default image" onclick="play_video('gongyi')">
    11. <img id="u2_img" class="img " src="images/index/u2.png" />
    12. <div id="u2_text" class="text " style="display:none; visibility: hidden">
    13. <p></p>
    14. </div>
    15. </div>
    16. <!-- 2 启示 anli (Image) -->
    17. <div id="u3" class="ax_default image" onclick="play_video('qishi')">
    18. <img id="u3_img" class="img " src="images/index/u3.png" />
    19. <div id="u3_text" class="text " style="display:none; visibility: hidden">
    20. <p></p>
    21. </div>
    22. </div>
    23. <!-- 3 宣教 (Image) -->
    24. <div id="u4" class="ax_default image" onclick="play_video('xuanjiao')">
    25. <img id="u4_img" class="img " src="images/index/u4.png" />
    26. <div id="u4_text" class="text " style="display:none; visibility: hidden">
    27. <p></p>
    28. </div>
    29. </div>
    30. <!-- 4 设施 (Image) -->
    31. <div id="u5" class="ax_default image" onclick="play_video('sheshi')">
    32. <img id="u5_img" class="img " src="images/index/u5.png" />
    33. <div id="u5_text" class="text " style="display:none; visibility: hidden">
    34. <p></p>
    35. </div>
    36. </div>
    37. <!-- 5 标识 (Image) -->
    38. <div id="u6" class="ax_default image">
    39. <img id="u6_img" class="img " src="images/index/u6.png" />
    40. <div id="u6_text" class="text " style="display:none; visibility: hidden">
    41. <p></p>
    42. </div>
    43. </div>
    44. <!-- 6 游戏 (Image) -->
    45. <div id="u7" class="ax_default image">
    46. <img id="u7_img" class="img " src="images/index/u7.png" />
    47. <div id="u7_text" class="text " style="display:none; visibility: hidden">
    48. <p></p>
    49. </div>
    50. </div>
    51. </div>

    3、动态配置项

    1. [
    2. {
    3. "question": "下面哪个是119火警电话标识?",
    4. "answer": "u111.png",
    5. "answer_list": {
    6. "A": "u131.png",
    7. "B": "u161.png",
    8. "C": "u111.png",
    9. "D": "u151.png"
    10. }
    11. },
    12. {
    13. "question": "下面哪个是消防栓标识?",
    14. "answer": "u171.png",
    15. "answer_list": {
    16. "A": "u161.png",
    17. "B": "u311.png",
    18. "C": "u171.png",
    19. "D": "u151.png"
    20. }
    21. },
    22. {
    23. "question": "下面哪个是安全通道标识?",
    24. "answer": "u131.png",
    25. "answer_list": {
    26. "A": "u111.png",
    27. "B": "u131.png",
    28. "C": "u181.png",
    29. "D": "u141.png"
    30. }
    31. },
    32. {
    33. "question": "下面哪个是禁止堆放杂物标识?",
    34. "answer": "u331.png",
    35. "answer_list": {
    36. "A": "u371.png",
    37. "B": "u321.png",
    38. "C": "u341.png",
    39. "D": "u331.png"
    40. }
    41. },
    42. {
    43. "question": "下面哪个是消防通道标识?",
    44. "answer": "u221.png",
    45. "answer_list": {
    46. "A": "u361.png",
    47. "B": "u351.png",
    48. "C": "u331.png",
    49. "D": "u221.png"
    50. }
    51. }
    52. ]

    五、更多案例

    YYDatav的数据可视化大屏《精彩案例汇总》(Python&Echarts源码)_YYDataV数据可视化的博客-CSDN博客_datav案例

    本次分享结束,欢迎交流,需要定制项目请私聊~

  • 相关阅读:
    SpringCloud链路追踪SkyWalking-第三章-接入微服务
    国家开放大学 模拟试题训练
    java基于微信小程序的鲜花销售购物商城 uniapp 小程序
    Ubuntu部署K8S
    FAST-LIO(二):程序运行&代码注释
    Activity数据库字段说明
    如何安装Xftp实现上传和下载文件
    spark—KV算子解析
    解决Vue 3 + Element Plus树形表格全选多选以及子节点勾选的问题
    微服务架构中的进程间通信
  • 原文地址:https://blog.csdn.net/lildkdkdkjf/article/details/126957921