JeffMony开源的VideoDownloader,Android平台视频下载SDK

文章目录

JeffMony开源的VideoDownloader,Android平台视频下载SDK

JeffMony/VideoDownloader是一个Android平台的视频下载SDK,目前GitHub Star数为509。这一工具针对Android开发者的视频下载需求设计,提供完整的视频下载、管理、合并能力。

核心功能覆盖常见视频下载场景

VideoDownloader支持的视频类型包括mp4、mkv、mov、3gp等整视频格式,以及HLS M3U8格式视频。M3U8视频下载完成后,会生成本地的local.m3u8文件,用户可直接点击播放下载完成的视频文件。

工具内置数据库记录视频下载信息,支持视频下载队列,可同时处理多个下载任务。针对M3U8格式,提供合并为MP4的功能,用户可定制下载视频的标题和封面,还支持为视频下载任务设置group-name进行分组管理。

接入方式简单直接

开发者可通过Gradle引入这一SDK。首先在项目根目录的build.gradle中添加JitPack仓库地址,之后在模块的dependencies中引入对应版本的依赖即可。当前最新版本为5.8.0。

如果需要使用M3U8合并为MP4的功能,可额外引入对应的依赖包。官方提供两种合并库选择,用户可根据包体积需求选择完整FFmpeg库或裁剪后的轻量M3U8处理库。

使用流程清晰

SDK接入分为几个固定步骤。应用启动时,首先注册download config,设置缓存目录、超时时间、并发下载数、是否自动合并M3U8等参数。之后注册全局download listener,监听下载任务的各个状态回调,包括准备、开始、进度更新、暂停、错误、成功等状态。

开发者可通过接口获取当前所有下载任务,调用对应的方法执行启动下载、暂停下载、恢复下载、删除下载任务、批量暂停等操作。M3U8合并功能也提供独立接口,用户传入输入文件路径和输出路径即可触发合并,合并结果通过回调返回。

SDK的VideoTaskItem类封装了下载任务的所有信息,包括下载地址、创建时间、任务状态、下载进度、下载速度、文件大小、保存路径等。VideoTaskState类定义了所有可能的任务状态,开发者可直接使用这些常量判断任务当前状态。

版本迭代稳定

目前SDK已经迭代到5.8.0版本,近期更新内容包括修复下载成功回调多次的问题,解决FFmpeg合并时出现的pts异常问题。之前的版本迭代中,还完成了FFmpeg库裁剪,将体积从10M降至1M,优化了TS合并逻辑,提供四种架构的so库支持,满足不同设备的适配需求。

这一SDK适合需要在Android应用中集成视频下载功能的开发者使用,代码开源在GitHub,开发者可根据需求自行修改扩展。

在GitHub,开发者可根据需求自行修改扩展。

相关推荐
沐言Agent34 分钟前
太惊艳了!2 个让你的 Codex 狠狠省 Token 的开源项目,必须收藏!
人工智能·ai·开源
程序员清风39 分钟前
vLLM 实战:用 OpenAI 兼容接口部署本地大模型推理服务
开源·github·vllm
三少爷的鞋40 分钟前
Android 架构指南:suspend 如何响应取消?别再给 Repository 加 `cancel()`
android
2601_962381131 小时前
历史视频朝代更替动效怎么做?把 AE 关键帧换成 AI 分镜动画的实战拆解
人工智能·nginx·音视频
AI创界者1 小时前
【AI音视频处理】AI视频 480p 一键修复到 1080p!FlashVSR + SeedVR2 本地超分整合包(Base免安装版)
人工智能·aigc·音视频
迪飞特科技1 小时前
【无标题】
android·人工智能·本地化大模型
Eddyp2 小时前
避开溢价!艾默生 TREX2 手操器省钱选型攻略
网络·其他·百度·微信·微信公众平台·新浪微博
FlightYe2 小时前
视界原理之2D视频(二):视频文件里有什么
android·linux·网络·c++·ffmpeg·音视频·aac
可乐鸡翅yeah_2 小时前
hls.js 切换多个视频源,新手开发常见踩坑
开发语言·前端·javascript·ios·ffmpeg·音视频·safari
传奇开心果编程2 小时前
【Flutter入门练中学】第8课:动画与过渡
android·学习·flutter·ui·ios