• Stars
    star
    413
  • Rank 104,801 (Top 3 %)
  • Language
    Java
  • Created almost 7 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

M3U8下载器,支持多线程下载、断点续传、后台下载、本地播放解决方案、m3u8加密解决方案

M3U8Downloader

M3U8下载器,支持多线程下载、断点续传、后台下载、本地播放解决方案、m3u8加密解决方案

依赖

allprojects {
		repositories {
			...
			maven { url 'https://jitpack.io' }
		}
	}
	
dependencies {
	        compile 'com.github.Jay-Goo:M3U8Downloader:V1.0.8'
	}

用法

配置

  • default Config:
M3U8DownloaderConfig
                .build(getApplicationContext())
                .setSaveDir(dirPath)
                ;
  • Custom Config:
M3U8DownloaderConfig
                .build(getApplicationContext())
                .setSaveDir(dirPath)
                .setConnTimeout(10000)
                .setReadTimeout(10000)
                .setThreadCount(3)
                .setDebugMode(true)
                ;

单例

M3U8Downloader.getInstance()

下载

download(String url)

暂停

pause(String url)

取消任务、取消任务并删除文件缓存

cancel(String url)

cancelAndDelete(final String url, final OnDeleteTaskListener listener)

下载监听

        M3U8Downloader.getInstance().setOnM3U8DownloadListener(onM3U8DownloadListener);

private OnM3U8DownloadListener onM3U8DownloadListener = new OnM3U8DownloadListener() {

        @Override
        public void onDownloadItem(M3U8Task task, long itemFileSize, int totalTs, int curTs) {
            super.onDownloadItem(task, itemFileSize, totalTs, curTs);
            //下载切片监听,非UI线程
        }

        @Override
        public void onDownloadSuccess(M3U8Task task) {
            super.onDownloadSuccess(task);
            //下载成功
        }

        @Override
        public void onDownloadPending(M3U8Task task) {
            super.onDownloadPending(task);
            //加入队列,任务挂起
        }

        @Override
        public void onDownloadPause(M3U8Task task) {
            super.onDownloadPause(task);
            //任务暂停
        }

        @Override
        public void onDownloadProgress(final M3U8Task task) {
            super.onDownloadProgress(task);
            //下载进度,非UI线程
        }

        @Override
        public void onDownloadPrepare(final M3U8Task task) {
            super.onDownloadPrepare(task);
            //准备下载
        }

        @Override
        public void onDownloadError(final M3U8Task task, Throwable errorMsg) {
            super.onDownloadError(task, errorMsg);
            //下载错误,非UI线程
        }

    };

M3U8Task

    private String url; //下载链接
    private int state = M3U8TaskState.DEFAULT; //下载状态
    private long speed; //下载速度
    private float progress; //下载进度
    private M3U8 m3U8; //下载成功后得到

加密

加密后视频切片文件名乱序,并移除后缀。

//设置密匙
M3U8Downloader.getInstance().setEncryptKey(encryptKey);
//获取随机密匙
AES128Utils.getAESKey()

更多加密解密 M3U8EncryptHelper

本地播放

普通未加密请使用 M3U8HttpServer

加密解密请使用 M3U8EncryptHelper

具体使用样例参考 FullScreenActivity

联系我

  • Email: [email protected]
  • QQ Group: 573830030 有时候工作很忙没空看邮件和Issue,大家可以通过QQ群联系我

一杯咖啡

大家都知道开源是件很辛苦的事情,这个项目也是我工作之余完成的,平时工作很忙,但大家提的需求基本上我都尽量满足,如果这个项目帮助你节省了大量时间,你很喜欢,你可以给我一杯咖啡的鼓励,不在于钱多钱少,关键是你的这份鼓励所带给我的力量~

致谢

huangdali - M3U8Manger

More Repositories

1

RangeSeekBar

 A beautiful and powerful SeekBar what supports single、 range、steps、vetical、custom( 一款美观强大的支持单向、双向范围选择、分步、垂直、高度自定义的SeekBar)
Java
2,488
star
2

WaveLineView

A memory-friendly recording wave animation一款性能内存友好的录音波浪动画
Java
683
star
3

ProtectedApkResignerForWalle

[Walle WiKi官方推荐]一步解决应用加固导致Walle渠道信息失效的自动化脚本工具,自动生成渠道包
Python
563
star
4

MultiSelectPopWindow

链式多选弹窗,轻松集成
Java
166
star
5

JacocoTestHelper

两步轻松实现手工测试代码覆盖率
Java
71
star
6

Mp3Converter

Use latest Lame to transform PCM, WAV, AIFF and other uncompressed formats into MP3 format files(Andorid使用Lame将PCM、WAV、AIFF格式转为MP3格式文件)
C
71
star
7

RecordWaveView

a beatiful wave animation for recording ,support android Mp3 record
Java
69
star
8

PictureSelector

仿微信、QQ图片选择器(自带图片压缩,裁剪)
Java
30
star
9

M3U8HttpServer

Android Local Http Server
Java
17
star
10

PeachPlayer

【水蜜桃播放器】一款支持UI深度自定义的播放器,支持RIMP、HLS(m3u8、ts)、MP4、M4A等视频格式,支持 RTMP/HTTP/HTTPS 视频流播放,支持本地视频播放。
Java
6
star
11

WeatherSampleWithTest

一个MVP+Retrofit+RxJava结构的天气查询demo,主要用于演示单元测试、MVP结构、MVP+Retrofit+RxJava结合演示
Java
3
star
12

ScanBlackTechAnimation

Java
1
star
13

RSPhotoMagic

利用RenderScript对图像进行高效处理的Library
Java
1
star