代码链接
这次对ui做了一些调整,整体分成了5个类别分别为
- 搜索设备
- 播放任务
- 已下载视频列表
- 视频搜索
- 下载任务列表
视频搜索
搜索
点击搜索后,会从执行所有VideoResolver实现类的search方法,将搜索到的结果汇总到一起,根据视频的来源做汇总,这个搜索是实时搜索的第三方视频网站,我们本地不做任何数据落地
加入下载任务
点击加入下载任务后,会把下载任务加入到一个列表tsAsyncTaskList中,会有一个守护线程不停的扫描这个列表,对里面的任务执行下载操作,前台每一秒请求一次后台获取下载的进度,具体逻辑在com.microcosm.homer.service.impl.VideoServiceImpl#executeTsAsyncTask中
视频投屏自动切换
自动投屏任务
在已下载的视频列表中点击加入播放任务,就会加入到播放队列中,设置好后点击投屏,后台就会投屏这个队列的第一个视频,并且订阅了设备的事件,同时用一个守护线程不断的续订,防止过期,等设备播放完视频后,会在回调接口中传一个STOPPED事件,我们的服务收到这个事件后,就投屏队列的下一个视频。前台也会轮询一个播放任务接口,获取最新的还未投屏的视频任务。核心逻辑在com.microcosm.homer.service.DeviceService#playPlayTask中