Android: 基于Kotlin的Andr欧博官网oid平台简易M3U8视频下载器

文章正文
发布时间:2024-05-21 15:35

M3U8Downloader_Android

1. 介绍

这是一款个人开发的适用于Android平台的m3u8视频下载器。

2. 说明

此分支(remaster_kt)是使用Kotlin重写main分支后的作品,欧博官网大幅减少了代码体积。

目前发布的release可能存在奇怪的bug,仅供学习和研究。

最低支持Android版本为8.0,建议10.0(10.0以下对于Download目录的写入暂未实现)

3. 更新记录

版本1.61

修复列表新增视频后坐标未更新的bug

新增隐私保护,在未解锁状态不能直接跳转播放视频

调整视频下载完成时间的提示

版本1.6

新增下载完成后视频列表自动刷新(尝试使用ViewModel)

调整视频列表排序逻辑,现在最新下载的视频排在顶端

现在视频列表刷新后会自动滚动到顶端

替换顶部ToolBar的图标

调整顶部ToolBar的层级结构,欧博现在ToolBar在两个页面均会出现

调整底部BottomNavgationView菜单子项的颜色

版本1.51

调整各个界面中卡片和两侧的外边距,更适合全面屏

调整视频列表中每个条目的主标题显示内容,现在直观显示下载时间

修复下载中途取消下载会删除整个视频目录的bug

修复由于视频列表Fragment不重载导致新添加的项目无法显示

新增视频列表下拉刷新功能

版本1.5

新增解析同一视频源的多码率文件时,自动选择最高码率/清晰度功能

调整保存位置的选择,现在只可保存到应用目录或Download目录

版本1.43

修复了合并后的视频播放异常的问题

使用Kotlin File I/O新特性重新实现分片合并

版本1.41

新增自定义下载线程数量(范围2~8)

微调主界面UI颜色和布局

注:以下为java版更新内容,kotlin版从此处继续完善,java版不再更新

版本1.4 Beta更新:

更新了主界面显示,移除不必要功能

新增可选择下载文件保存位置

版本1.31 Beta更新:

增加了视频列表的排序

增加了已下载文件距今的时间显示

版本1.3 Beta更新:

视频列表由ListView升级为RecyclerView

更新视频列表的视觉效果

支持在软件内对视频进行删除

ps: 正在计划使用kotlin重写整个项目

版本1.2 Beta更新:

新增URL输入合法性检测

新增视频分片多次下载超时则下载失败机制

JDK版本由1.8升级为11

Gradle版本升级为7.0

下载器请求Header部分新增UA设定

新增底部导航栏、已下载视频列表页面

现在可通过视频列表页直接跳转至视频播放器播放

版本1.1 Beta更新:

新增下载过程中取消下载的功能

调整界面布局

调整”开始下载“按钮位置

版本1.0 Beta更新:

重构软件整体架构,逻辑更清晰,大幅提升运行效率

新增程序架构图、程序流程图

版本0.2更新:

适配Android 10及以上的暗色模式

新增应用程序图标

4. 程序运行截图

MainActivity

5. 程序整体架构图

MainActivity

6. 程序运行流程图

MainActivity

将用户输入的m3u8 URL传入Scheduler;

Scheduler向Downloader传递URL;

Downloader获取m3u8内容并返回给Scheduler;

Scheduler将内容传递给Parser,解析各部分具体内容(详见架构图)

Parser返回解析结果(Part列表)给Scheduler;

Scheduler开启下载线程池,根据结果下载视频分片;

Downloader回报下载内容,Scheduler写入存储;

(如有加密)Scheduler调用Decryptor进行解密;

Scheduler调用Merger将分片内容合并;

Scheduler将合并后的MP4文件写入共享存储区域;

首页
评论
分享
Top