T3 DVR应用代码及功能分析文档
2017-05-10 17:10
821 查看
T3 DVR应用代码及功能分析文档
概要:T3 DVR应用代码及功能分析文档
一代码结构
二类的说明
1UI部分
2Camera封装操作
3服务
4异步任务
5数据库操作
6接口类
7广播监听器
8工具类
9IPC 接口描述
三功能列表
预览及录像
紧急视频
拍照
文件浏览
设置
四功能实现流程分析
文件循环删除流程分析
倒车监听
USB摄像头插拔
五T3 新增API
camerastartRender
camerastopRender
camerasetWaterMark
camerasetAnalogInputColorint value
camerasetCameraFlipStatusint flip
mediaRecordersetNextSaveFileString filePath
一、代码结构
DVR应用整体采用MVC框架下面为项目的包结构目录:
com.xinzhihui.mydvr:Application、Activity等
com.xinzhihui.mydvr.adapter:适配器包
com.xinzhihui.mydvr.asynctask:异步任务包
com.xinzhihui.mydvr.db:数据库管理包
com.xinzhihui.mydvr.fragment:fragment包
com.xinzhihui.mydvr.listener:接口回调包
com.xinzhihui.mydvr.model:处理元素
com.xinzhihui.mydvr.receiver:广播监听器包
com.xinzhihui.mydvr.service:服务类包
com.xinzhihui.mydvr.utils:工具类包
二、类的说明
1)MyApplication2)AppConfig
1、UI部分
1)BaseActivityActivity基类,配合ActivityCollector进行Activity的管理;
2)ActivityCollector
负责Activity的管理,内部使用集合List保存activity实例;
3)MainActivity
工厂设置界面,用于设置前后摄像头id;
T3平台摄像头id分配:
video 0、1:usb摄像头
video 2、3:CSI摄像头
video 4、5、6、7:TVIN摄像头
4)CameraActivity
双路预览界面,使用SurfaceTexture对Camera进行预览;
5)FileList2Activity
文件浏览界面,包含紧急视屏、前路视屏、后路视屏、图片共4个fragment界面;
6)FileListActivity 弃用
7)FloatWindow
倒车界面,采用浮动窗口+SurfaceView的形式;
8)Setting2Activity
设置界面,包括通用设置、前摄像头设置、后摄像头设置共3个fragment界面;
9)SettingActivity 弃用
10)TvdActivity 弃用
11)VideoPlayerActivity
视屏播放器界面,负责应用中视屏媒体的播放(图片预览调用第三方应用)
12)LockVideoFragment
加锁视屏列表界面
13)VideoFileFragment
普通视屏列表界面,前路视屏、后路视屏、图片三个fragment复用该类;
14)SettingBehindFragment
后摄像头设置fragment;
15)SettingFrontFragment
前摄像头设置fragment;
16)SettingGeneralFragment
通用设置fragment;
17)FileListAdapter
适配器,普通视屏、图片列表视屏器;
18)LockVideoAdapter
适配器,加锁视屏文件列表适配器;
2、Camera封装、操作
Camera的封装运用了简单工厂模式+模板方法模式,其中模板方法模式能将前后摄像头不同的逻辑进行很好的拆分;1)CameraDev
提供部分Camera通用的操作方法,包括open()、preView()、startRecord()、stopRecord()等;录制部分实际操作的管理者为RecordService;
2)CameraFactory
工厂类;
3)FrontCameraDev
继承CameraDev;实现部分抽象函数及模板方法;
4)BehindCameraDev
继承CameraDev;实现部分抽象函数
3、服务
1)RecordService服务类,管理两路Camera录制及相关的操作;
4、异步任务
1)DeleteFileTask文件删除异步任务,负责文件的循环删除(文件循环删除机制另外详细说明)
2)DeleteSelectFileTask
文件删除异步任务,负责文件浏览器中长按删除的任务;
3)SavePictureTask
拍照保存异步任务;
5、数据库操作
1)ItemBean文件数据实体类,应用于文件浏览、数据库操作,包含:title、path、isShow、isSelect等字段;
2)LockVideoDAL
数据库DaL类,负责数据空中文件的加解锁工作;
3)MySqliteOpenHelper
初始化工作,例如数据库的创建(单例模式)
6、接口类
1)CameraStatusListenerUSB摄像头插拔状态回调接口;
2)FragmentEventListener
Fragment与Activity通信接口;
7、广播监听器
1)BootBroadcastReceiver2)TvdStateChangedReceiver
3)UsbCameraStateReceiver
4)UsbStateReceiver
8、工具类
1)ACache2)AppUtils
3)CommonUtils
4)DateTimeUtil
5)FileOrderUtils
6)FileUtils
7)IOUtils
8)LogUtil
9)SDCardUtils
10)SPUtils
11)StringUtils
9、IPC 接口描述
1)ICameraManager包含接口方法:
void open(int cameraId); void startPreView(int cameraId); void stopPreView(int cameraId); boolean startRecord(int cameraId); void stopRecord(int cameraId);
三、功能列表
预览及录像:
1、开机时自动进入后台录像模式(可设置)2、录制状态时,状态栏显示录制进行状态图标;右上角为录制时间显示;
3、录制保存为通用设置SD卡或者U盘,在通用设置里选U盘或者SD卡作为保存录像路径。
4、在选用外部存储空间时,支持外部存储空间热插拔。
5、录制需对存储进行检测,在没有录像存储设备or为DVR提供的存储空间不足时,按钮点击无效并提示。
6、在指定路径下的DVR/front、behind目录下以当前时间命名保存录制文件。
7、能够后台录制、循环录制、录制不能漏秒。
8、循环删除,当存储空间不足时,对所有(多路)视频进行排序删除,保证有一定的存储空间。
9、对Usb摄像头热插拔做相应处理。
10、适配Usb单节点摄像头和Usb双节点摄像头。
紧急视频:
1、在录制界面模式键选择锁定,能对当前视频进行加锁or解锁。2、锁定视频不加入循环删除队列。
3、不在录制状态,按钮点击无效并提示。
拍照:
1、在录制界面模式键选择拍照。在指定路径下的DVR/picture目录下以当前时间命名保存拍照文件。2、拍照时能保证录像后台录制,不用中断录制。
3、在没有录像存储设备or存储空间不足时,按钮点击无效并提示。
文件浏览:
1、在软件录制界面点击视频浏览键进入选择视频浏览界面,只浏览行车记录仪目录下的视频和照片(后台录制继续进行)。2、双路分四类:紧急视频 、前路视屏、后路视屏、照片
3、文件浏览内置视频播放器,点击视频即可进行播放;点击图片时,选择应用打开。
设置
进入设置需要停止录制(弹框提示)1、设置分为三类:通用设置、前摄像头、后摄像头
2、通用设置:应用开机自启动、文件存储路径(内外SD卡、U盘)
3、录音开关 :是否打开录音
4、视频水印开关 :是否添加水印 主要是时间信息
5、录制启动设置 :是否开机开启录制状态(后台无预览录制)。
6、视频分辨率 选择:720p、1080p。根据实际支持动态增加选项。
7、录制视频时长:1分钟,2分钟,3分钟。
四、功能实现流程分析
文件循环删除流程分析
倒车监听
USB摄像头插拔
1)录制时插拔2)预览时插拔
五、T3 新增API
camera.startRender()
camera.stopRender()
camera.setWaterMark()
camera.setAnalogInputColor(int value)
camera.setCameraFlipStatus(int flip)
mediaRecorder.setNextSaveFile(String filePath)
标签(空格分隔): 未分类在此输入正文
相关文章推荐
- JS应用DOM入门:简单文档DOM结构分析
- 应用系统功能分析设计方法
- C# 中反射的应用 和 代码中 is, as 分析
- PHP 应用提速 - 第 2 部分: 分析 PHP 应用程序以查找、诊断和加速运行缓慢的代码
- 对各个挑战代码的性能测试和功能分析
- jquery 应用代码 方便的排序功能
- VC单文档切分动态更换多视图代码分析
- 功能区域分析--如何将业务架构转化成为IT应用 推荐
- 【自然框架】之鼠标点功能现(二):表单控件的“应用”—— 代码?只写需要的!
- jquery 应用代码 方便的排序功能
- 应用系统功能分析设计方法
- [转]为 PHP 应用提速、提速、再提速!,第 2 部分: 分析 PHP 应用程序以查找、诊断和加速运行缓慢的代码
- 为 PHP 应用提速、提速、再提速!,第 2 部分: 分析 PHP 应用程序以查找、诊断和加速运行缓慢的代码
- 功能点分析方法在软件需求管理中的应用
- 实例分析SharpDevelop代码完成功能
- JS应用DOM入门(3):简单文档DOM结构分析
- 应用框架的设计与实现——.NET平台(9 消息队列服务代码分析)
- int 10H 显示字符串功能在《自己动手写OS》第五章代码中的分析
- 管理Discuz!代码分析的收集整理[2][文件功能]
- 三维GIS分析与操作功能的应用实践