1、题目基于Vitamio的安卓端手机播放器摘 要快捷、高效的生活节奏促使当今人们获取消息新闻渠道的即时性、多元化。随着网络普及率、覆盖率的不断扩大和网络速度的大幅提升,人们早已习惯通过移动手机观看视频来了解发生在当下的事情。众所周知,各大应用市场都有各种各样的基于android系统的播放器。本课题基于安卓系统,从实用性、简洁性出发,设计一款可以播放本地视频、获取服务端json数据以及可接受外部输入地址的视频播放器。该视频播放器是依赖Vitamio SDK,支持小屏与全屏手动切换、播放暂停、音量和亮度调节、实时显示时间的功能。从功能需求到理论分析再到具体实现,最终展示实现效果并且总结分析不足与收获
2、。关键词:android; Vitamio; json; 播放器Android cellphone video player based on the Vitamio SDKABSTRACTOn account of pace of the lifestyle has been quick and convenient, easy and efficient, it is of immediateness and diversity for people who live in this moment to gain news and information. With the popular
3、ity rate and spreading rate of the Internet becoming increased year by year, and the network speed becoming faster and faster, people have been accustomed to realizing and learning about the things which just happened by mobile phone on their hands watching the network videos at any time and in any
4、place.As we all know, there are various video players based on Android system in lots of popular application software markets. The project is also based on Android system. And put the practicability and conciseness as the first, designing a kind of video player which can play local-SDCard videos, ac
5、quire the json datas from windows web server and input known videos URI by users fingers. The next, this article will describe that this player depends on Vitamio SDK and videoview can support a lot of functions, such as switching small-screen or full-screen, achieving play or pause, adjusting volum
6、e or brightness and displaying system time. At last, the order to narrate this project is from function needs to theoretical analysis, from the analysis to the concrete realization, and the end which show final results or phenomena and summarize the harvest and the shorts during this project design.
7、Keywords:android;; Vitamio; json; video player目 录摘 要iABSTRACTii第一章绪论- 1 -1.1课题背景目的与意义- 1 -1.1.1课题背景- 1 -1.1.2课题的目的及意义- 1 -1.2本文的主要内容的结构安排- 2 -第二章软件的需求及设计的准备- 3 -2.1 软件需求分析- 3 -2.2 Android知识准备- 3 -2.3 关于Vitamio库- 5 -2.2.1 如何将Vitamio库放进项目工程中?- 5 -2.2.2 Vitamio库中有什么?- 6 -2.3 搭建简易的Windows Web服务器- 7 -2.3
8、.1 简单搭建- 7 -2.3.2 客户端如何与服务端通信?- 7 -第三章软件设计- 8 -3.1 总体框架设计- 8 -3.1.1 总体流程图,各页面关系- 11 -3.2 软件导航启动页设计- 13 -3.2.1 流程概括- 13 -3.2.2 代码思想详解- 13 -3.2.3 实现图解- 16 -3.3 子页面之本地视频- 16 -3.3.1 流程概括- 16 -3.3.2 代码思想详解- 17 -3.3.3 实现图解- 19 -3.4 子页面之本地网络- 20 -3.4.1 流程概括- 20 -3.4.2 代码思想详解- 21 -3.4.3实现图解- 23 -3.5 子页面其他非功
9、能性页面- 23 -3.5.1 流页面部分概述- 23 -3.5.2 关于我页面- 24 -3.6 主要功能基于Vitamio的视频播放页面- 24 -3.6.1 流程概括- 24 -3.6.2 代码思想详解- 24 -3.7 应用程序清单和布局部分解释- 27 -第四章测试部分- 29 -4.1播放页面真机测试- 29 -4.1.1测试结论- 29 -结束语- 30 -致谢- 31 -参考文献- 32 -iv第一章 绪 论1.1 课题背景目的与意义1.1.1课题背景在信息科技飞速发展的今天,人们获取信息、知识的方式也跟随着发生了巨大的变化,便捷了我们的生活。从以前最开始的阅读书报来了解社会国
10、家大事,到通过电视机观看新闻,再到出现移动数据和宽带网络,同时也衍生出的一系列用于人们彼此间进行信息接收与交换的移动设备,如平板电脑、笔记本和手机。这些设备的屏幕尺寸、分辨率、硬件等方面各不相同,使得具备相同功能(例如视频播放器)的应用,和实际上在这些设备上运用的应用也各有差异。从生活的各个角落我们都可以看到,无论是地铁、公交站台的广告、还是商场广场的LED屏都播放着各式的视频。由此可见视频是传达信息的一种便捷、普遍而有效手段。而一款能够具备稳定播放视频功能的播放器也更容易受到人们的青睐。根据有关数据显示,我国拥有移动电话的用户量呈现增长趋势,拥有固定电话的用户量呈现减小趋势;移动电话用户大部
11、分都使用3G/4G(移动宽带)1。表明了现如今人们越来越追求高速的上网体验。可移动智能设备应用的播放器需要依附于具体的系统。目前手机端主流的两种系统有IOS系统和Android系统2。针对大部分用户使用手机端系统的情况,使用Android系统用户占的比重较大。Android具有的开放性,使得在这个平台上做进一步的开发的可能性就越来越多3。但由于各个品牌手机的主打方向不同,使得手机硬件也各不相同。硬件上的差异和Android自带库关于视频播放编解码的局限性使得一些格式的视频不能够正常播放4。因此,涌现出了一批通过软件编解码能够最大限度地支持各式视频格式的视频开源项目。Vitamio便是众多用于视
12、频开发的开源项目之一,并且因为它对于Android系统关于视频方面的开发做得比较好,使得开发初学者更愿意使用它。Vitamio几乎支持所有的常见视频格式,如mp4、3gp、rtsp、rtmp等等。除此之外,还包含有一些非常人性化的功能,例如优化了设备的CPU和GPU、支持手机和平板各种移动设备、对于视频播放缓冲的支持和播放画面的调节等等5。1.1.2课题的目的及意义当前各种样式的播放器有很多,但抽离掉一些美观的界面包装元素,归结到底,这些播放器大体上实现的都是关于视频播放的一些基本功能(例如:播放、暂停、音量调节和亮度调节这些功能)。所以就目前来说,能够依赖一款稳定的视频开源库,并开发一款基于
13、Android系统的手机视频播放应用,是有非常好的应用前景的6。对于可以让没有多少视频开发方面经验的人能够轻松上手,有必要运用Vitamio SDK来对视频播放的基本功能进行设计与实现。1.2 本文的主要内容的结构安排本文设计的播放器是基于一个由国人研发的Android视频开源项目Vitamio SDK,能够播放几乎所有视频格式,功能强大,简单易用。本文的具体结构安排如下:第一章 绪论:主要介绍该课题的研究背景、目的及意义。第二章 软件的需求及设计准备:该章主要分析软件一些功能需求及其设计中涉及的所需相关android知识储备,例如:Android组件、Fragment概述、JSON基础知识、
14、线程和有关把Vitamio库添加到项目中的方法步骤,还有搭建简易的Windows端web端服务器等等。第三章 软件设计:从软件整体框架着手,逐步介绍各个子页面及主要视频播放页面的设计思路、实现方法及预期效果。子页面的介绍都是依照由大到小、由粗到细的方法来进行的。第四章 最终实现及真机测试:该部分主要展示最终实现的效果图以及真机测试的收获总结。第二章 软件的需求及设计的准备2.1 软件需求分析本课题最主要部分是视频播放的部分。理论上,需要播放本地格式的视频和流地址的视频,并且尽量让视频播放的控制页面相同。视频控制页面都能控制视频的播放和暂停,控制视频音量的大小和亮度的高低。本设计对于视频可支持的
15、格式要求是,能够播放rtsp、rtmp和m3u8类型的媒体流,还有mp4、3gp类型的视频。只需正确使用,Vitamio库可以完全支持这些视频格式。进一步地,在能够成功播放指定要求类型视频的基础上,需要应用能够实现展示本地视频并能点击播放、接收服务器包含视频流地址的JSON数据并解析,解析完后再展示并实现点击播放,手动输入视频流地址并播放。2.2 android知识准备本部分只涉及到本课题所需要的核心android知识,是对第三章软件设计思想那一部分的补充说明,比较零散,覆盖并不全面。1. ActivityActivity的生命周期:Android四大组件之一:activity,它的生命周期就是一个从启动时的创建到最终用完后销毁的过程2。#创建一个Activity时生命周期的方法执行顺序:onCreate()-onStart()-onResume();#销毁Activity时生命周期的方法执行顺序:onPause()-onStop()-onDestroy()。#A页面跳转到B页面,点击返回,这个过程中的生命周期:有B完全覆盖A和B不完全覆盖A两种情况,如下所述。1) 在B页面完全覆盖A页面的情况下A跳转B页面的生命周期方法执行顺序onPause(A