T3 DVR应用代码及功能分析文档
来源:互联网 发布:冲压模具报价软件 编辑:程序博客网 时间:2024/05/22 20:21
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)MyApplication
2)AppConfig
1、UI部分
1)BaseActivity
Activity基类,配合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)CameraStatusListener
USB摄像头插拔状态回调接口;
2)FragmentEventListener
Fragment与Activity通信接口;
7、广播监听器
1)BootBroadcastReceiver
2)TvdStateChangedReceiver
3)UsbCameraStateReceiver
4)UsbStateReceiver
8、工具类
1)ACache
2)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)
标签(空格分隔): 未分类
在此输入正文
- T3 DVR应用代码及功能分析文档
- 仿百度贴吧回帖功能分析及代码示例
- Initrd启动及功能分析
- Linphone架构及功能分析
- DVR
- dvr
- webrtc中的MethodCall0代码功能分析
- 面向对象_老师学生案例加入抽烟功能分析及代码实现
- vsftp功能分析及虚拟用户服务
- 功能分析
- Linux系统在嵌入式DVR中的应用
- HD-SDI DVR发展与应用剖析
- SRS 代码分析【DVR录像实现】
- 硬盘录像机-DVR文件系统及硬盘发展趋势
- 综合应用:《购票系统》的功能分析
- 组态软件的系统构成及功能分析
- metasploit的模块构成及功能分析
- Ambari警报功能分析及源码解读
- LocalDate、LocalTime、LocalDateTime
- Android4种网络连接方式HttpClient、HttpURLConnection、OKHttp和Volley优缺点
- sql查询重复数据
- windows环境下完全卸载mysql并重新安装
- java mongodb 包含与不包含 的 模糊查询
- T3 DVR应用代码及功能分析文档
- Java 键盘输入的方法
- 【系统】安装win7与Ubuntu双系统http://blog.csdn.net/songkai320/article/details/51865282
- 对于所有方法都通用的对象
- Git解决每次都要输入密码
- 修改安卓默认的系统button样式,以及其它系统控件的默认样式
- java 后台传值ids,数据太多的数据库处理方法
- Android BT种子文件解析
- 阿里云ECS 远程终端无法连接