概要:
- T3 DVR应用代码及功能分析文档
- 一代码结构
- 二类的说明
- 1UI部分
- 2Camera封装操作
- 3服务
- 4异步任务
- 5数据库操作
- 6接口类
- 7广播监听器
- 8工具类
- 9IPC 接口描述
- 三功能列表
- 预览及录像
- 紧急视频
- 拍照
- 文件浏览
- 设置
- 四功能实现流程分析
- 文件循环删除流程分析
- 倒车监听
- USB摄像头插拔
- 五T3 新增API
- camerastartRender
- camerastopRender
- camerasetWaterMark
- camerasetAnalogInputColorint value
- camerasetCameraFlipStatusint flip
- mediaRecordersetNextSaveFileString filePath
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)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
适配器,加锁视屏文件列表适配器;
Camera的封装运用了简单工厂模式+模板方法模式,其中模板方法模式能将前后摄像头不同的逻辑进行很好的拆分;
1)CameraDev
提供部分Camera通用的操作方法,包括open()、preView()、startRecord()、stopRecord()等;录制部分实际操作的管理者为RecordService;
2)CameraFactory
工厂类;
3)FrontCameraDev
继承CameraDev;实现部分抽象函数及模板方法;
4)BehindCameraDev
继承CameraDev;实现部分抽象函数
1)RecordService
服务类,管理两路Camera录制及相关的操作;
1)DeleteFileTask
文件删除异步任务,负责文件的循环删除(文件循环删除机制另外详细说明)
2)DeleteSelectFileTask
文件删除异步任务,负责文件浏览器中长按删除的任务;
3)SavePictureTask
拍照保存异步任务;
1)ItemBean
文件数据实体类,应用于文件浏览、数据库操作,包含:title、path、isShow、isSelect等字段;
2)LockVideoDAL
数据库DaL类,负责数据空中文件的加解锁工作;
3)MySqliteOpenHelper
初始化工作,例如数据库的创建(单例模式)
1)CameraStatusListener
USB摄像头插拔状态回调接口;
2)FragmentEventListener
Fragment与Activity通信接口;
1)BootBroadcastReceiver
2)TvdStateChangedReceiver
3)UsbCameraStateReceiver
4)UsbStateReceiver
1)ACache
2)AppUtils
3)CommonUtils
4)DateTimeUtil
5)FileOrderUtils
6)FileUtils
7)IOUtils
8)LogUtil
9)SDCardUtils
10)SPUtils
11)StringUtils
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分钟。
1)录制时插拔
2)预览时插拔
标签(空格分隔): 未分类
在此输入正文