基于Android平台的手机在线视频播放系统的设计和实现
况君
摘要:目前基于Android平台的智能手机广泛流行,WlFI网络也日趋普及,消费者购买手机的目的也不再局限于传统的电话及短信业务,网络和娱乐功能也成为其参考的重要部分。文章提出了基于Android平台的手机在线视频播放系统的模块设计和实现过程,通过陛能测试展示了视频播放器的显示效果,达到了设计的要求。
关键词:Android;在线视频播放器;模块设计
视频播放器作为智能手机一个必不可缺的重要功能,能够贴近用户,方便用户,能够引起用户极大的兴趣。但传统的手机视频播放器界面单调,功能单一,已经满足不了当前消费者的需求。
通过对基于Android系统的在线视频播放器进行分析,本文完成一款能够实现在线视频播放功能Android系统视频播放器。该视频播放器包含以下功能:(1)实现本地视频和音频文件的播放。(2)实现本地视频和音频文件的列表显示。(3)实现己播放文件的列表显示。(4)实现在线视频资讯的显示和在线视频文件的播放。
1.概要设计
本系统主要包含了启动界面、主列表、本地文件、最近播放文件、最新资讯、搜索和播放控制界面7个模块,当用户启动模拟器后,经过开机画面,就会进入启动的选择项,然后,用户就可以根据实际情况和自己的需要,对各个模块进行操作。各模块的主要功能分别是:(1)启动界面:显示启动画面,检测用户网络连接状态并根据网络状态实现跳转。(2)主列表:显示搜索、本地文件、最近播放文件和最新资讯几个模块。(3)本地文件:本地视频、音乐文件的列表,并实现一键播放。(4)最新资讯:通过web服务,为用户提供系统推荐的最新视频信息。(5)最近播放文件:实现最近播放文件的列表,方便用户重复播放感兴趣的视频音频文件。(6)搜索:用户通过该模块在线搜索视频文件进行播放。(7)播放控制界面:播放视频时,显示播放的画面,为用户提供控制播放进度的按钮及显示播放进度的进度条。
该系统的模块结构如图1所示。
1.1启动界面
该模块为Start.java类,其主要功能为显示软件启动画面并判断手机的网络连接状态。每次程序启动时,都将为用户显示一个启动画面(为减少启动程序的时间,此处的启动画面为静态的图片)。与此同时,程序自动判断手机的网络连接状态。
1.2主列表
该模块由MainActivity.java完成,其主要功能是显示软件的主要用户界面,该页面的布局由线性布局完成。主列表界面提供4个选项:本地文件、最近播放文件、最新资讯和搜索。用户可以通过主列表界面选择本地文件播放,也可搜索网络视频文件播放,同时主列表还为用户提供最新的视频资讯,并可通过己播放视频列表重复欣赏感兴趣的视频。
1.3最新资讯
该模块是运用系统的网络通信功能,由web服务器端为用户提供的最新视频资讯。每条资讯都设置有事件监听器,用户通过点击自己感兴趣的视频即可触发播放器,从而连接到视频的地址,进行在线视频播放。
1.4本地文件
本地文件模块运用SQLite数据库和ListView类来实现数据的搜集、管理和列表显示。在列表中每一条视频或音频信息上添加了监听器,如果用户点击该条信息则自动进行播放。
1.5本地播放
本模块的主要功能是将用户最近播放过的视频或音频文件单独列表显示,方便用户在需要重复播放感兴趣的视频或音乐时快捷的播放,无需再进入本地文件或进行网上搜索。最近播放模块和本地文件相似,也使用了SQLite数据库来存储数据信息,使用ListView类来显示这些信息。
1.6搜索
本模块视频的实现应用了HTTP协议分发的暂进式视频下载方式,支持3gp的视频格式。搜索模块采用客户端和服务器的方式进行网络视频的搜索并进行播放。
1.7播放控制界面
该模块功能由Vedioplayer.java类完成,页面布局由Vedioplayer.xml完成。模块中主要包括快进、快退、暂停按钮、菜单、进度条还有播放界面5个部分。快进、快退、暂停均用于控制播放的进度,菜单用于显示最近播放的3条信息,进度条用于显示播放和调整播放的进度。播放画面由SurfaceView方法来实现。
2.详细设计
2.1网络判断
系统不会切换至主列表的情况包含无网络和无wifi网络2种情况,每种情况都应该单独判断,首先判断是否有网络连接,这里网络已经连接的情况不区分是GPRS网络还是wifi网络,后面会有后续的判断。如果检测到无网络连接,需提示用户检查网络连接;如果已经连接网络,则进行下一步,即是否为wifi网络的判断。
2.2主列表的实现
主列表模块实际是由几个图片按钮构成的按钮,如点击最近播放即进入最近播放文件列表,点击本地文件即进入本地文件模块。
主列表功能的实现由MainActivity.java类实现,该类中最重要的是用户点击的时间监听及处理,其页面布局由MainActivity.xm实现,该类采用线性布局。
2.3本地文件及历史播放模块的实现
内存卡和照相机中的视频文件分列在内存卡和照相机文件夹中而将所有内存中的音频文件都存储在音乐文件夹中。历史播放模块的设计与本地文件模块的设计类似,同样采用SQLite数据库来存放数据表单,通过ListView来显示表单中的条目,并为每一个条目设置了ItemClick事件监听。
2.4网络通信的实现
应用HTTP协议,其主要特点为:支持客户/服务器模式,简单陕速,灵活,无连接,无状态。
2.5最新资讯的实现
最新资讯运用系统的网络通信功能,由web服务器端为用户提供的最新视频资讯。每条资讯都设置有事件监听器,用户通过点击自己感兴趣的视频即可触发播放器,从而连接到视频的地址,进行在线视频播放。
2.6在线视频搜索的实现
当用户在搜索输入框中输入视频名称并点击提交按钮时,应用程序即将用户输入信息传送给web服务器。服务器在数据库中搜索与用户输入信息相匹配的视频信息,如果存在,则向客户端返回该视频的确认信息并播放;如果不存在,则向用户返回视频不存在信息。
2.7播放控制界面的实现
播放界面是视频播放器设计的最主要部分,优秀的用户界面才能引起用户的强烈使用愿望,本视频播放器的用户界面主要通过surfaceView这个显示控件来显示视频文件的画面,用seekBar组件来显示及控制视频的播放进度还有ImageButton来实珊陕进、快退、暂停、播放等按钮的功能,每一个按钮都会触发mediaplay事件,然后通过按钮id来判断是哪一个按钮上发生的事件。
3.系统测试及总结
测试是相当重要的一个环节,系统测试的目标是为了发现软系统中的错误,通过测试发现错误之后还必须诊断并改正错误,这就是测试的目的,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。