基于Android的播控系统的实现与改进

2019-06-01 10:06肖罗军唐清善
电脑知识与技术 2019年12期
关键词:局域网

肖罗军 唐清善

摘要:该文根据Android系统,通过本地服务器、网络通信和视频播放器等搭建出一个在局域网中,可由客户端实时控制一个或者多个服务端的多媒体播放系统。该系统支持客户端对服务器的播放状态如音量、亮度、色温、播放内容等进行实时控制,支持多种文件类型,支持独屏播放和分割屏幕播放。该系统中客户端不仅可以上传文件到服务端,还可以下拉服务端的文件,并且可对上传文件进行二次编辑。

关键词:本地服务器;播控系统;分屏播放;局域网

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2019)12-0218-02

1 引言

随着显示屏技术的日益提升和人们对信息传播速度的需求,多媒体播放在各种公共场合出现率日益增加[1]。在实际需求中,往往需要同时对多个显示屏进行实时控制,并且希望显示屏分屏播放不同格式的内容,有时还希望对服务器的资源进行二次编辑[2]。而现存的手机播控系统一部分为固定分屏,无法支持窗口的动态改变大小和位置,一部分支持窗口的改变,但操作复杂,缺乏滑动吸附、边缘对齐等功能[3],并且都存在搜索终端缓慢和无法对服务器文件的二次编辑[4]。而本文提出的该播控系统解决了以上问题,在客户端对搜索终端、编辑节目等功能进行了优化,极大提高了从编辑节目到上传节目的效率,并且在服务端搭建本地服务器完成客户端对其的实时控制和二次编辑,提高了该系统的容错率。

2 系统设计

本播放系统由客户端和服务端组成,客户端主要有5个功能,分别为编辑节目、搜索终端、上传节目、播放控制和二次编辑;服务端主要2个功能,分别为网络处理模块和播放,如下图1。

在该播放系统中不仅保存了传统的操作方式,还提供了一种新的操作方式,二次编辑型。传统类型:先编辑节目,接着再搜索局域网中的服务端,选择一个或者多个服务端将节目进行上传,服务端接受到网络请求后,先将节目在本地进行储存,然后再根据节目中的信息对窗口位置、大小等进行设置,最后再进行播放。二次编辑型:先搜索终端,接着选择某个终端的一个节目,将其下拉到服务端进行第二次编辑,解决了编辑出错需重新编辑的问题,并且避免了新的客服端缺乏该节目中的媒体资源文件而无法编辑问题。

3 客户端系统改进

3.1 终端搜索

服务端搭建本地服务器,并开通8080端口。客户端获取本机IP地址,保留IP地址前24位,将后8位,从00000000至11111111依次取值,再将获取到256个IP地址依次与客户端的IP进行socket连接。使用多线程进行socket连接,创建线程池,在线程池中设置256个核心线程,设置线程池的容量为256,设置存活时间为30s,设置双端阻塞连接队列且容量为256,设置socket的连接时间为1s,且重复搜索3次。在普通机型上,可将搜索3遍的时间控制在2s左右,且短时间内可以多次搜索。

3.2 编辑节目

3.2.1 节目构成

节目由本地储存ID、服务端储存ID,名称、缩略图、宽、高、一个或者多个窗口构成,窗口由x,y(窗口在节目中的起始坐标)、宽、高、一个或者多个媒体构成,媒体由名字、类型、路径、大小、时长构成,媒体类型包括图片、视频、文本、时钟,如下图所示。

3.2.2 控件实现

节目的显示由自定义FrameLayout控件(MyFrameLayout)实现。重写MyFrameLayout的onInterceptTouchEvent(ev)函数,当节目中无窗口被选中时,该函数返回(editFlag)false,MyFrameLayout不处理当前事件,当节目中有窗口被选中,该函数返回(editFlag)true,MyFrameLayout处理当前一系列事件。重写MyFrameLayout的onTouchEvent(ev)函数,当editflag为false时,MyFrameLayout不处理当前事件,事件逐层往下传递,媒体控件响应该一系列事件中的点击事件,将该媒体控件选中(editFlag置为true),当editflag置为true时,MyFrameLayout控件拦截传递到该控件的所有的事件,根据事件的时间长短、位置、移动距离等响应不同的函数。

3.2.3 功能实现

动态大小及位置:选中的媒体控件分为上中、右上、右中、右下、下中、左下、左中、左上、中,九个区域,当该一系列事件的down事件落在那个区域时,则由该区域对这一系列事件进行响应。当down事件落在左上区域时,根据move事件中x,y的差值,对该媒体控件的left和top值进行动态变化,当事件落在中间区域时,则根据move事件对控件位置进行动态变化,其他区域依次类推。当事件落在MyFrameLayout控件中,但事件位置沒有媒体控件时,该事件不予处理,而当事件位置落在其他未选中控件时,点击事件会改变选中的控件。

边缘吸附和对齐:提取节目中所有媒体控件的左上右下坐标,当媒体控件发生位置变化时,与其他控件的坐标进行比较,当移动控件的左右坐标与其他控件的左坐标或者右坐标,距离在5像素之内,则会发生自动靠拢,即边缘吸附,上下坐标也如此。当移动控件左右坐标与其他控件的左坐标或者右坐标相差在5像素之内,则会发生自动对齐,并显示对齐线段,上下坐标也如此。

3.3 上传节目

选择上传的一个或者多个终端,获取上传节目中每一个图片和视频媒体资源的唯一识别码(Universally Unique Identifier,简称UUID),然后上传第一个资源UUID,查看服务端是否已经存在该UUID,若存在,说明之前已经上传过该资源,则上传下一次资源的UUID,若不存在,则上传该媒体资源,如下图所示。当上传多个服务端时,由于上传速度的不一致,导致服务播放的进度有所差异,故在服务下载节目完毕后,需反馈给客户,等待所有服务端反馈完毕后,客户端再发送播放命令。

3.4 控制播放状态

选择一个服务端进行控制,在进入控制界面前,对服务端发送请求设备当前状态的网络请求,对客户的音量、亮度、色温等进行初始化设置。改变音量或者亮度等数值时,实时向服务端发送数据,服务端收到数据后对设备的状态进行改变,返回设备当前状态给服务端,客户回收到数据后,对音量、亮度、色温等数值再次进行设置,保证客户和服务端的数值是同步。

3.5 二次编辑

选择客户端界面中的服务端节目列表,客户端将会下拉该节目信息,将可再次进入到编辑节目模块,对节目信息进行二次编辑。若没有添加新的媒体资源,则只需要上傳节目信息,无须再次上传资源文件,若添加新的资源文件,也只需要再次上传新的资源和配置信息。此模块还支持客户端将服务端的节目下拉,可以下载该节目中的媒体资源到本地,方便传输到不同地点的服务端。

4 服务端系统处理

4.1 网络处理

导入NanoHTTPD库,编写一个新的类AndroidWeb继承NanoHTTPD类实现本地服务器。服务器收到请求后,获取请求的Uniform Resource Locator(url),将url以“/”进行分割,分割后的第一段为客户端的IP地址。第二段为请求实现类的方法,在处理请求时将第二段作为反射中方法的填入,从而避免了处理请求的方法过于臃肿。若第二段的值在反射类中无实现方法,说明请求错误,返回状态码404。部分网络请求有第三段,为处理请求时同一类方法的区分。在下载过程中,如果下载文件出错,返回状态码500。下载文件后,对上传文件进行检查,若不符合规格时,则返回状态码406。若处理请求成功,则返回状态码200。

4.2 播放

当客户端没有上传节目时,服务端会播放默认画面,如果上传节目,服务端会切换到上传节目进行播放,客户端也可以选择上传的多个节目中的某一个节目进行播放。上传节目完毕后,主布局mRootLayout会移除之前的控件,判断上传节目中有几个窗口,再依次添加控件。

在mRoot Layout中添加窗口时,根据窗口中的参数,对窗口坐标、播放顺序、内容大小类型等进行设置,接着再判断窗口中媒体的类型、入场动画等,然后根据媒体类型更新窗口中的控件。媒体中的视频类型采用Ijkplayer播放器中的播放控件进行播放,其他媒体类型采用自定义控件。

5 系统测试

客户端编辑节目,添加多个窗口,对窗口的播放顺序、位置、大小类型等进行不同的设置,接着再往窗口中添加不同的媒体资源,搜索服务端,上传节目,然后再验证服务端的播放效果。

6 总结

该系统达到在局域网内,服务端可实时控制多个客户端的播放,支持不同媒体资源的播放、支持分屏播放、支持二次编辑和支持下载服务器资源等,且对编辑节目功能进行优化,添加自动吸附、对齐显示,丰富了播放系统的功能且对操作进行了简化。如果需要实现超远距离的控制,则需将局域网接入互联网,这时对系统的安全性和网络通信需要更高的要求。

参考文献:

[1] 郑东吉.LED显示屏技术分析与产业发展研究[J].无线互联科技,2017(15):117-118.

[2] 鞠文飞.基于Android平台的视频教学平台的开发与应用[J].信息通信,2018(09):161-163.

[3] 陈龙,任克强.基于Android的手机音视频播放软件设计[J].科技广场,2017(04):47-49.

[4] 况君.基于Android平台的手机在线视频播放系统的设计和实现[J].无线互联科技,2016(05):21-22.

[5] 杨鑫诚.基于IOS的多媒体播放系统设计与实现[J].电脑知识与技术,2012,8(36):8784-8788+8791.

[6] 温陈鹏,朱宏,李旭伟.基于网络的多媒体播放系统[J].计算机与信息技术,2006(09):59-60.

【通联编辑:代影】

猜你喜欢
局域网
基于F5G的无源光局域网在智慧医院的应用
轨道交通车-地通信无线局域网技术应用
基于VPN的机房局域网远程控制系统
基于虚拟局域网的收费系统网络构建
基于局域网的安全加固策略研究
基于802.1Q协议的虚拟局域网技术研究与实现
局域网性能的优化
家庭无线局域网的测试方法及应用
局域网隐性病毒及清除策略
论局域网中ARP欺诈原理与防范措施