基于Android的手机学习平台的开发与应用

2016-03-16 08:13申圣兵聂立文
移动信息 2016年6期
关键词:服务器端播放器调用

申圣兵 聂立文



基于Android的手机学习平台的开发与应用

申圣兵 聂立文

湖南高速铁路职业技术学院,湖南 衡阳 421000

为适应校园无线网络的完善和移动智能终端快速普及的新形式,提出构建基于Android的移动学习平台,系统服务器端和Android客户端的主要技术实现。

Android客户端;手机学习平台

随着校园无线网络的逐渐完善和移动智能终端的快速普及,校园内师生对于随时随地浏览学习资料的需求在持续增长。但目前校园网中提供的学习性的资料普遍基于Web模式,无法有效的兼容智能手机和平板电脑,同时也无法适应用户使用习惯向移动化方向发展的趋势。所以需要建设适用于移动互联网的学习平台,提供方便、快捷和易用的服务,为学校的教育教学提供方便。目前的移动平台主要分为iOS和Android,Android系统因其开放性、易用性迅速得到业界和社会的认可,并引领着目前的技术潮流。[1]

1 系统结构

1.1 系统总体架构

手机学习平台的架构如下图1所示,它包括数据库服务器、Web服务器、无线网络和Android客户端。数据库服务器和Web服务器主要负责学习资源的收集、整理和发布。Android客户端主要负责对服务器的访问。

图1 系统结构

服务器端的内容主要以Web页面的方式呈现,由于主要是在移动设备上浏览,Web页面对移动设备进行了优化,采用了“自适应网页技术”及HTML 5技术。

1.2 服务器端资源音视频格式编码

由于是学习平台中的资源包含有大量的音视频,它们必须满足一定的要求才能适合移动终端访问,音视频格式必须实现流媒体播放即支持边下载边播放。手机网络视频一般是flv和mp4格式,鉴于MP4/h.264编码的优势,视频多采用MP4文件格式存储,音频采用aac编码。[2]有些视频需要使用第三方软件进行格式转换,如使用格式工厂进行转换设置如图2:

1.3 播放器插件在Web页面中的使用

由于学习平台主要是通过Web页面展示,Web页面播放视频最重要的是使用手机Web网页视频播放插件,这里我们推荐一款免费可定制的Web网页视频播放插件ckplayer,可以到www.ckplayer.com免费下载。下载后将其解压到项目文件夹下,如下图3:

播放器在Web页面中调用的方法:

CKobject.embed('ckplayer/ckplayer.swf','a1','ckplayer_a1','300','200',false,flashvars,video);

相关参数意义如下,更详细的解说可以参考官网。

ckplayer/ckplayer.swf:播放器所在路径

a1:网页容器ID

ckplayer_a1:播放器的ID

300和200:播放器的宽度和高度

false:优先调用设置,false=优先调用flash播放器,true=优先调用HTML5播放器

flashvars:播放器的初始化参数,以及HTML5初始化参数

2 Android客户端

2.1 开发方法

Android客户端采用Eclipse开发,主要是利用android自带的WebView控件来访问和控制站点,WebView是基于webkit引擎展现web页面的控件,WebView控件功能强大,除了具有一般View的属性和设置外,还可以对url请求、页面加载、渲染、页面交互进行强大的处理。其使用的一般步骤如下:

(1)在Activity中实例化WebView组件:WebView webView = new WebView(this);

(2)调用WebView的loadUrl()方法,设置WevView要显示的网页:

互联网用:webView.loadUrl("Web地址");

本地文件用:webView.loadUrl("file:/// android_asset/XX.html");本地文件存放在assets 文件中。

(3)调用Activity的setContentView( )方法来显示网页视图。

(4)用WebView点链接看了很多页以后为了让WebView支持回退功能,需要覆盖覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退剪键,整个浏览器会调用finish()而结束自身,而不是回退到上一页面

(5)需要在AndroidManifest.xml文件中添加权限,否则会出现Web page not available错误。

2.2 访问视频全屏问题的解决

在Android中,传统的一般有三种方式来实现视频的播放:

(1)使用其自带的播放器。指定Action为ACTI ON_VIEW,Data为Uri,Type为其MIME类型。

(2)使用VideoView来播放。在布局文件中使用VideoView结合MediaController来实现对其控制。

(3)使用MediaPlayer类和SurfaceView来实现,这种方式很灵活。

但是由于本项目中的内容多是由Web页面展示,它们不能嵌入Web页面中,所以上面的三种方式并不太适合,我们选择了可以嵌入的一款播放器来实现。手机由于屏幕尺寸关系,视频播放推荐使用全屏方式,所以视频全屏是一项非常重要的功能,它主要是通过重载on Show Custom View方法来实现。[3]当用户点进击全屏按钮时,会自动触发on Show Custom View事件,处理代码如下:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

webView.setVisibility(View.INVISIBLE);

if (xCustomView != null){

callback.onCustomViewHidden();

return;

}

video_fullView.addView(view);

xCustomView = view;

xCustomViewCallback = callback;

video_fullView.setVisibility(View.VISIBLE);

退出全屏通过重载onHideCustomView方法来实现。其实现的主要代码如下:

if(xCustomView == null)//不是全屏播放状态

return;

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

xCustomView.setVisibility(View.GONE);

video_fullView.removeView(xCustomView);

xCustomView = null;

video_fullView.setVisibility(View.GONE);

xCustomViewCallback.onCustomViewHidden();

webView.setVisibility(View.VISIBLE);

视频播放效果图如下图4:

图4 视频播放

3 结束语

随着移动互联网的快速发展,基于 Android 的移动应用具有广阔的发展前景,本文在分析师生需求和现有技术条件的基础上,提出了基于 Android 的学习平台的搭建,实现了服务器端资源的采集、管理和发布以及Android 客户端应用程序。测试表明系统适用于当前的技术环境 服务端通过虚拟化技术实现了高可用性和可拓展性,客户端实现了访问功能,具有较好的用户体验,能够满足校园师生的需求。

[1]唐雄,张巨发,段昌奉,等.基于Android智能手机的医院移动护理信息系统开发及应用[J].中国数字医学,2013,8(2):95-96.

[2]赵旭辉.基于Android手机的教学质量评测软件开发[J].电脑开发与应用,2015(1):73-75.

[3]芮素文.基于Android平台软件开发方法的研究与应用[J].信息通信,2015(3):106.

The Development and Application of Mobile Learning Platform based on Android

Nie Liwen Shen Shengbing

Hunan high speed railway,Career Technical College,Hengyang,Hunan 421000,.

in order to adapt to the improvement of campus wireless network and the rapid popularization of mobile intelligent terminal,the main technology of building a mobile learning platform based on Android is proposed,which is based on Android.

Android client;mobile learning platform

TP311.52

A

1009-6434(2016)6-0006-03

猜你喜欢
服务器端播放器调用
播放器
Linux环境下基于Socket的数据传输软件设计
Walkman诞生40周年 索尼适时发布NW-ZX500和NW-A100系列播放器
核电项目物项调用管理的应用研究
基于STM32的MP3播放器设计
系统虚拟化环境下客户机系统调用信息捕获与分析①
Moon ACE播放器/放大器一体机
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用