VisualBasic在线视频APP的设计与实现
2016-03-13郑州航空工业管理学院臧利萍刘燕美
郑州航空工业管理学院 臧利萍 刘燕美 周 博
VisualBasic在线视频APP的设计与实现
郑州航空工业管理学院 臧利萍 刘燕美 周 博
随着互联网技术和工业4.0的发展,互联网+教育冲击着传统的课堂教学。在校大学生课程、时间比较自由,对APP接受度极高。如何将公共课程VisualBasic知识移动化、手机化,使得学生随时随地学习,成为研究的课题。本文是基于Android平台开发的VisualBasic在线视频APP的设计与实现,项目主要涉及视频播放、多线程断点续传下载、网络编程、数据库操作等技术点。为用户提供了较全面的VisualBasic在线学习功能,包括在线视频观看、视频下载、文章阅读等模块。该应用降低了用户的学习成本,提高了用户的学习效率,具有较高的实用价值。
Android;在线视频;文件下载
1 引言
Android是Google公司推出基于Linux内核的开源移动平台。Android的优势在于第一层通过最快的C语言保证效率,上层使用Java简单快速进行开发。Android的到来奠定了移动操作系统的一个里程碑时代的开始,现在Google正利用其搜索、移动、web的各个入口,来掌握互联网的控制权,而Android有了Google这样的支持更是如鱼得水,不仅在搜索上利用Google Now的优势,更利用了Google Map工具将移动系统与web系统联系在了一起。Android正在不断成长,正逐渐走向更辉煌的未来。
本项目的任务就是基于Android平台设计一款在线学习类移动APP。包括在线视频观看、视频下载、文章阅读等几大功能模块,移动端采用Android Studio进行开发,服务端采用Bmob+七牛云存储实现云数据库和云文件存储功能。
2 技术分析
2.1 Bmob后端云服务
移动后端即服务——Backend as a Service也叫Baas,就是将服务端的内容打包,将数据库的设计、服务器的搭建以及后台逻辑处理等都放在了云端,用户只需要调用他们提供的API接口就可以实现网络通讯功能。Baas其主要为用户提供文件存储、容器服务、消息推送、云端逻辑、应用统计等功能。Bmob可以为开发者提供便捷、快速的云数据库服务,方便用户浏览终端保存的各种信息。使用Bmob无需再打造服务端,便能轻松拥有应用开发的各种后端能力支持,减少了开发者将应用从idea到产品(成品)的时间。
2.2 流媒体传输协议
流媒体技术的主要特点是以“流(Streaming)”的形式在基于IP协议的互联网中进行多媒体数据的实时、连续传播,客户端在播放前并不需要下载整个媒体文件,而是在将缓存区中已经收到的媒体数据进行播放的同时,媒体流的剩余部分仍持续不断地从服务器递送到客户端,即所谓的“边下载,边播放”。移动互联网是传统桌面互联网向移动通信网络的延伸。作为移动互联网中具有代表性的典型应用,移动流媒体业务主要是利用互联网和3G移动通信网络平台,为以手机为主的嵌入式终端设备提供基于音视频的流式多媒体服务。流媒体协议是支撑流媒体业务运行的关键核心技术之一。
2.3 多线程断点续传下载
网络文件的多线程断点续传下载就要运用到多线程技术和文件读写操作,关键点有首次访问获取文件总长度、在本地创建一个同样大小的文件并根据线程个数将文件分段、从本地SQLite数据库中获到上次下载的进度,通过Service开启一个线程进行文件进行分段下载,下载过程通过发送Broadcast来将进度广播出去,界面中利用BroadcastReciver接收进度变化并更新Activity界面上的进度条显示,下载完成后删除下载信息等。需要注意的地方有网络请求HttpUrlConnection需要设置RequestProperty(“Range”)来控制下载部分和返回值通过206来确认是否下载成功,另外为了优化性能,最好通过线程池的使用来减少多线程的创建和销毁,提高软件性能。
3 需求分析
3.1 主要功能结构
该项目的主要功能模块划分视频学习、视频下载、文章阅读、个人中心四部分。其中视频学习部分主要包括在线视频观看、视频搜索等功能;视频下载有断点下载等功能;文章阅读部分有文章搜索、文章显示、文章点评等功能;个人中心部分包括登录注册、软件设置和软件常用功能等。
3.2 主要功能分析
1)视频播放:用户可通过筛选条件搜索出自己希望观看的视频,视频播放分为横屏和竖屏两种模式,可手势控制亮度和音量。
2)视频下载:视频文件可进行多线程断点续传下载,当用户暂停下载,将下载进度保存到本地数据库,用户下次进入时继续下载。
3)文章阅读:用户可以在界面直接阅读文章,也可以根据自己的兴趣和需求进行搜索,并将搜索结果呈现在界面上。
4)个人中心:该模块包含个人中心模块常用功能,包括登录注册、用户收藏、软件设置、消息推送等。
4 概要设计
该项目的主要界面结构分为四部分:课堂、学习、共享、我的。其中课堂模块为APP的首页,包含一个图片轮播器以及热门视频列表;学习模块主要为视频进行搜索、播放视频、视频设点播放;共享模块主要为文章共享,包含用户查看的文章呈现出得列表,用户根据自己的需求搜索文章,用户针对文章发表自己的想法、意见和建议。我的模块主要是一些个人中心常用功能,包括用户登录注册、APP设置、我的收藏、我的笔记、发表文章、我的下载以及我的消息等界面。
5 详细设计
1)视频播放功能:视频播放利用Vitamio框架实现,配合自定义MediaContrller实现视频播放功能。通过重写onTouchListener实现手势控制音量和亮度功能。
2)视频下载功能:视频下载通过service开启多线程进行下载,将下载进度通过发送broadCast进行回传,下载进保存在SQLite数据库中,多条下载线程利用线程池进行管理。
3)共享模块功能:共享模块主要为文章列表,包含用户查看的文章呈现出得列表,用户根据自己的需求搜索文章,用户针对文章发表自己的想法、意见和建议。
4)个人中心模块功能:用户头像利用自定义BitmapShader实现圆形头像显示;背景使用RenderScript高斯模糊效果;推送功能通过BmobPush实现。
6 项目测试
1)视频列表测试:视频列表的热门推荐是根据用户访问量的权值以及知识点的重要性等几个方面决定的,几个因素利用算法进行实现。视频列表中的每一项都含有视频题目、用户访问量以及视频播放的时间。
2)视频播放测试:当手机处于横屏状态下,会全屏播放视频,当手指在屏幕左侧1/4范围内滑动改变屏幕亮度,在屏幕右侧3/4范围内滑动改变视频音量。当手机竖直后会自动切换回竖屏状态。屏幕切换过程中视频进度状态会及时保存。
3)视频下载测试:视频下载界面显示正在下载的视频列表,包括暂停、开始按钮和当前下载的视频信息以及下载进度等。
4)文章阅读测试:文章阅读和视频列表类似,文章阅读还有文章列表,列表中的文章排序是根据用户访问量进行,每一项含有作者名字、最近访问时间、文章类型以及访问量。选中某一项文章点击打开后,界面呈现文章的具体内容,用户可以收藏,可以共享文章,用户可以发表评论功能。
5)个人中心测试:个人中心界面中,如果用户未登录,则显示默认头像和登录按钮,给用户提供登录入口,如果用户已登录,则显示用户头像、昵称和相关用户信息。
7 总结与展望
本项目包括视频播放、下载、文章阅读、个人用户设置等。项目从前期的需求分析、设计,到软件框架搭建、前端后台功能的实现,然后进行项目的测试。该项目的特点: 将视频、文章阅读、个人用户设置集于一体,全面满足用户在线学习的相关需求。客户端使用Android Studio开发工具进行开发,视频播放控件使用成熟的Vitamio框架;服务端采用新兴的Bmob第三方后端云服务平台,解决云数据库问题;由于视频等文件容量过大,存储方面采用七牛云存储平台,实现视频文件的存储、传输功能以及解决带宽问题和在线观看视频CDN加速问题。
[1]李刚 著.疯狂Android讲义精粹[M].北京:电子工业出版社,2012
[2](美)李伟梦 著.何晨光,李洪刚 译. Android编程入门经典[M].北京:清华大学出版社,2012.
[3]熊斌编 著.Android多媒体开发技术实战详解[M].北京:电子工业出版社, 2012.
[4]范怀宇 著. Android开发精要[M].北京:机械工业出版社,2012.
臧利萍(1984—),女,河南焦作人,硕士,讲师,现供职于郑州航空工业管理学院,研究方向:场景构建、移动终端
刘燕美(1986—),女,河南新乡人,硕士,讲师,现供职于郑州航空工业管理学院,研究方向:计算机应用。
周博(1994—),男,大学本科。
郑州航院校青年基金(项目号:2015103004);郑州航空工业管理学院横向项目(项目号:1010-22020006)。