Coder Social home page Coder Social logo

yubobo / m3u8downloader Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jay-goo/m3u8downloader

0.0 2.0 0.0 195 KB

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

Java 100.00%

m3u8downloader's Introduction

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

m3u8downloader's People

Contributors

jinjiegu avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.