播放器代码结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
包的结构如下:
.dyitech.estarry.player包
程序入口,完成基本初使化及框架构建,完成节目单的切换,对监控器提供系统音量/屏幕亮度的调用处理。
.dyitech.estarry.player.service包
服务管理类、包括节目单解析、数据库访问构建、系统工作环境设置、AIDL心跳完成正播节目上报、屏幕界面元素构建、播放器初使化准备、Socket心跳服务(负责接收突发单截图等即时性较高的操作)、天气预报后台数据服务。
3.工具类包
工具类包分为两大类:一类是基础工具类包,即通用程序工具类;另一类是播放器工具类。
通用程序工具类,如com.dyitech.estarry.player.util包、com.dyitech.estarry.player.util.bean 包、com.dyitech.estarry.player.util.view包等。
播放器相关工具类。之所以将播放器业务相关的操作作为工具类,目的是将播放器的基本业务逻辑单独抽象为一个工具类库,为将来多种版本的播放器工程所调用。
4.播放器相关工具类
●ponents包:播放器界面元素相关控件类。
●ponents.model包,节目单及内部各元素相关值对象及
实体对象的定义。
●ponents.video包,自定义视频播放控件,android自有
控件扩展。
●com.dyitech.estarry.player.util.db包,播放器数据库构建。
●com.dyitech.estarry.player.util.dynamicdata包,播放器动态数据区域对象及业务实现。只
所以没有放入ponents.model包是因为动态数据区域实现及结构相对复杂及机制独立。
●com.dyitech.estarry.player.util.exception包,是播放器程序异常退出时异常的捕获及处理。
●com.dyitech.estarry.player.util.log包是日志的保存及处理,提供对log4j的封装,便于以
后对日志进行统计分析及灵活输出。
●com.dyitech.estarry.player.util.music包是对背景音乐控制处理
●com.dyitech.estarry.player.util.text包,采用子线程进行滚屏字幕的绘制,包括用
SurfaceView及GLSurfaceView,是一种尝试,未被采用。
●com.dyitech.estarry.player.util.view包是对View的相关操作工具类。
5.对第三方源码进行修改的包括
com.dyitech.estarry.player.util.bitmap包、com.dyitech.estarry.player.util.text包。这两个包引用了网上资源和android例子代码。
工程中使用的第三方代码全部均进行了相应的修改裁剪及扩展。
6.播放器的数据库结构
可参看DBService类的实现,里面有明确的建表语句。
关于表的说明:
tb_schedule:节目单表
tb_playitem:节目表
tb_region:区域表
tb_dyregion:动态区域中包含的区域列表
tb_regionsrc:节目单中引用到的素材文件列表,暂时不用。
tb_log:日志信息表,暂时不使用,便于以后根据日志进行统计工作
以后各者均是通过单键连接,如:tb_playitem表中包含所属节目单的ID属性,tb_region 表中包含所属的节目ID属性;tb_regionsrc表中包含素材所属的区域属性。
7.运行流程图
代码中具体每个类,每个方法的作用及调用情况可参看代码及注释。
精品文档资料,适用于企业管理从业者,供大家参考,提高大家的办公效率。精品文档资料,适用于企业管理从业者,供大家参考,提高大家的办公效率。