摘要:该项目是基于java, 使用流行的开发设计框架制作而成的一个视频播放网站App, 运用了流媒体播放技术和大文件上传技术等, 为视频资源和播放业务提供了良好的管理手段。该系统作为BS项目的优点是不用安装APP, 有浏览器就能使用。该网站的主要功能有, 视频点播、直播、站内搜索、新闻浏览、用户留言评论、在线互动、后台管理等。在设计上遵循MVC设计模式, 具有良好的可扩展性和结构性。后台管理的独立设计能够让网站维护人员时刻保持网站资源的更新和维护。用户能够时刻的观看到最新的资源。网站还加入了智能推荐功能, 根据用户的观看习惯来拟定推荐内容, 做到每个用户都能看到为其推荐的不同的推荐内容。
关键词:JAVA; 网站; 视频; 直播;
Abstract:The video site App is based on java, and made up of popular development design framework with the use of streaming media playback technology and large file upload technology that provides a good management for the video resources and playback business. The system as a BS project can be used with a browser and without APP installation. The main features of the site are video on demand, live, site search, news browsing, user comments, online interaction and backstage management. The design follows the MVC design pattern with good scalability and structural. The independent design of the backstage management allows the site maintenance staff to keep the website resources updated and maintained at all times and the users can always watch the latest resources.Web site also joins the intelligent recommendation function, according to the user's viewing habits to develop recommendations, so that each user can see the different recommended content that recommended for them.
Keyword:JAVA; website; video; live;
如今, 人们对互联网的需求慢慢开始从传统的被动的信息获取方式转型为多元丰富的自由的获取方式[1,2]。人们在上网浏览咨询的同时, 更多地希望自己能够切身参与到互联网信息构建过程中来, 以直播、点播视频类互动网站平台的兴起, 很好地满足了人们对于这一需求的渴望, 而流媒体播放技术则是实现该类网站的关键点[3,4]。流媒体播放, 顾名思义, 即将视频音频等转化为可即时播放的流媒体, 流媒体不依赖整体的特性, 让其可以在观看过程中, 不需要等待资源的下载完成, 缓冲一段即可以播放, 大大地优化了用户体验[5-7]。本项目的设计过程中, 依赖掌握的java web编程技术和流媒体播放技术搭建的一个视频播放功能性网站, 本设计的目的是致力于开发一个便于管理和维护, 可扩展性强的一个网站体系。
1、系统总体设计框架
本设计在设计模式上遵循MVC的设计模式, 模型层 (model) 、视图层 (view) 、控制层 (control) 。遵循模块化设计结构, 主要的功能模块有:用户模块、视频模块、直播模块、新闻模块、菜单模块、还有后台管理模块等。用户模块中, 主要分为用户登录和注册、用户管理、用户交互、业务申请等, 视频模块主要分为视频播放、发布和维护等。
直播模块分为直播注册, 直播播放等业务、菜单模块即是对所有模块的管理。后台模块中可以对所有的业务进行管理。整体设计框架图如图1所示。
图1 系统框架流程图
2、系统具体模块设计
2.1、用户模块具体设计
首先是登录注册, 登录注册是在设计上用到了一个控制器User Controler、JS表单校验。在用户体验上为了避免账号或者密码输入错误导致重新刷新页面的问题。采用的是AJAX表单提交。后台的登录主要针对的是管理员。管理员可以对前台的用户进行管理操作。
图2 用户模块总体思路图
2.2、视频模块设计
视频在网站中来源有两种。第一是用户上传的视频 (需要经过后台审核操作) , 第二是管理员在后台上传的视频。视频信息可以在上传的时候进行维护, 也可以由管理员进行二次维护。包括封面, 关联资源 (要播放的视频) 、视频分类 (菜单) 或分组 (播放专辑) 等其他信息, 可以设置视频的优先级进行排序, 优先级决定视频在前台页面展示的顺序。设置播放专辑可以在用户播放某个视频的时候进行加载推荐。视频播放采用Flash流播放器, 可以调节进度。视频上传采用swf大文件上传插件, 支持队列上传、断点续传并且在速度上比普通上传快。视频模块设计思路如图3所示。
图3 视频模块总体思路图
2.3、直播模块设计
直播用户通过上传视频流, 通过媒体服务器的转接, 用户可以通过访问直播地址来实时收看视频流。并同时发送即时消息。
采集视频流:obs直播客户端摄像头或桌面。
直播方案:流媒体服务器:FMS (rtmb流)
播放流:flash播放器
实时弹幕功能:websorket通信。视频模块设计思路如图4所示。
2.4、新闻模块设计
新闻的作用是为了推荐网站精彩的内容, 并通过链接地址来访问相应的资源, 并且位置都是在网站比较靠前的位置 (优先级较高) , 以轮播图的形式展现。
新闻的管理模式如:封面+描述+日期+内容+关联资源。其管理权限只对管理员开放。类似于消息内容发布系统 (CMS) 。新闻模块设计思路如图5所示。
图4 直播模块总体思路图
图5 视频模块总体思路图
2.5、菜单模块设计
菜单模块可以说是其他模块的功能的整合, 在设计上主要就是为了方便对所有的模块进行整理, 另外在前台展示的时候可以根据相应的菜单ID进入每个独立功能。
表1 菜单模块示例
3、系统测试
3.1、用户模块测试
用户模块, 访问主页后显示登录前台登录窗口 (如图6) 。注册有效身份后即可使用用户身份登录。登录成功后可对个人中心进行管理 (如图7) 。
图6 登录测试图
图7 个人中心测试图
3.2、视频模块测试
在后台添加一条视频数据, 在前台找到该条数据, 点击播放, 测试能正常播放。测试效果 (如图8) 。
图8 视频后台管理测试图
3.3、直播模块测试
后台添加新直播>>将审核状态改为已审核打开直播软件>>输入播放流地址>>开始直播点击首页直播>>显示在线直播间>>进入直播间>>开始收看直播。测试的效果如图9所示。
图9 直播测试图
3.4、新闻模块测试
登录后台管理, 添加新闻, 管理新闻, 将新闻状态改为发布, 前台首页查看该新闻测试的效果如图10所示。
3.5、菜单模块测试
后台管理菜单管理, 添加或修改菜单再在前台查看新菜单名, 点击菜单进入相应子菜单页面。测试的效果如图11所示。
图10 直播测试图
图11 菜单管理测试图
参考文献
[1]蔡万景, 赵海涛, 郭宽.La Tex创作的Web模板系统的研究与实现[J].科技信息, 2010 (11) :467-468.
[2]林煜, 张燕.基于Java网站内容管理的设计与实现[J].电脑知识与技术, 2010 (14) :3666-3667.
[3]贺建洲.基于Java网站内容管理的设计与实现[J].电子技术与软件工程, 2016 (7) :27.
[4]康晓林, 蒋少莉.Java网站设计中的工作流的设计[J].电子技术与软件工程, 2014 (22) :74.
[5]陈涛, 白栩翔.Velocity模板引擎技术在Java Web中的应用[J].农业网络信息, 2011 (5) :38-40.
[6]马景涛, 郑斌, 张利益, 等.Java Web网站应用Matlab问题解决方案[J].现代电子技术, 2013 (6) :56-58+62.
[7]网站登录Google与网站设计[J].计算机与网络, 2003 (18) :35.