- 这是一款个人开发的适用于Android平台的m3u8视频下载器。
- 此分支(remaster_kt)是使用Kotlin重写main分支后的作品,大幅减少了代码体积。
- 目前发布的release可能存在奇怪的bug,仅供学习和研究。
- 最低支持Android版本为8.0,建议10.0(10.0以下对于Download目录的写入暂未实现)
- 修复列表新增视频后坐标未更新的bug
- 新增隐私保护,在未解锁状态不能直接跳转播放视频
- 调整视频下载完成时间的提示
- 新增下载完成后视频列表自动刷新(尝试使用ViewModel)
- 调整视频列表排序逻辑,现在最新下载的视频排在顶端
- 现在视频列表刷新后会自动滚动到顶端
- 替换顶部ToolBar的图标
- 调整顶部ToolBar的层级结构,现在ToolBar在两个页面均会出现
- 调整底部BottomNavgationView菜单子项的颜色
- 调整各个界面中卡片和两侧的外边距,更适合全面屏
- 调整视频列表中每个条目的主标题显示内容,现在直观显示下载时间
- 修复下载中途取消下载会删除整个视频目录的bug
- 修复由于视频列表Fragment不重载导致新添加的项目无法显示
- 新增视频列表下拉刷新功能
- 新增解析同一视频源的多码率文件时,自动选择最高码率/清晰度功能
- 调整保存位置的选择,现在只可保存到应用目录或Download目录
- 修复了合并后的视频播放异常的问题
- 使用Kotlin File I/O新特性重新实现分片合并
- 新增自定义下载线程数量(范围2~8)
- 微调主界面UI颜色和布局
注:以下为java版更新内容,kotlin版从此处继续完善,java版不再更新
- 更新了主界面显示,移除不必要功能
- 新增可选择下载文件保存位置
- 增加了视频列表的排序
- 增加了已下载文件距今的时间显示
- 视频列表由ListView升级为RecyclerView
- 更新视频列表的视觉效果
- 支持在软件内对视频进行删除
ps: 正在计划使用kotlin重写整个项目
- 新增URL输入合法性检测
- 新增视频分片多次下载超时则下载失败机制
- JDK版本由1.8升级为11
- Gradle版本升级为7.0
- 下载器请求Header部分新增UA设定
- 新增底部导航栏、已下载视频列表页面
- 现在可通过视频列表页直接跳转至视频播放器播放
- 新增下载过程中取消下载的功能
- 调整界面布局
- 调整”开始下载“按钮位置
- 重构软件整体架构,逻辑更清晰,大幅提升运行效率
- 新增程序架构图、程序流程图
- 适配Android 10及以上的暗色模式
- 新增应用程序图标
- 将用户输入的m3u8 URL传入Scheduler;
- Scheduler向Downloader传递URL;
- Downloader获取m3u8内容并返回给Scheduler;
- Scheduler将内容传递给Parser,解析各部分具体内容(详见架构图)
- Parser返回解析结果(Part列表)给Scheduler;
- Scheduler开启下载线程池,根据结果下载视频分片;
- Downloader回报下载内容,Scheduler写入存储;
- (如有加密)Scheduler调用Decryptor进行解密;
- Scheduler调用Merger将分片内容合并;
- Scheduler将合并后的MP4文件写入共享存储区域;