Skip to content

Commit cb80889

Browse files
authored
Create README.md
1 parent f15ab27 commit cb80889

File tree

1 file changed

+133
-0
lines changed

1 file changed

+133
-0
lines changed

README.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
# M3U8Downloader
2+
M3U8下载器,支持多线程下载、断点续传、后台下载、本地播放解决方案、m3u8加密解决方案
3+
# 依赖
4+
5+
```
6+
allprojects {
7+
repositories {
8+
...
9+
maven { url 'https://jitpack.io' }
10+
}
11+
}
12+
13+
dependencies {
14+
compile 'com.github.Jay-Goo:M3U8Downloader:V1.0.5'
15+
}
16+
```
17+
18+
# 用法
19+
### 配置
20+
* default Config:
21+
```
22+
M3U8DownloaderConfig
23+
.build(getApplicationContext())
24+
.setSaveDir(dirPath)
25+
;
26+
```
27+
* Custom Config:
28+
```
29+
M3U8DownloaderConfig
30+
.build(getApplicationContext())
31+
.setSaveDir(dirPath)
32+
.setConnTimeout(10000)
33+
.setReadTimeout(10000)
34+
.setThreadCount(3)
35+
.setDebugMode(true)
36+
;
37+
```
38+
39+
### 单例
40+
`M3U8Downloader.getInstance()`
41+
42+
### 下载
43+
`download(String url)`
44+
45+
### 暂停
46+
`pause(String url)`
47+
48+
### 取消任务、取消任务并删除文件缓存
49+
`cancel(String url)`
50+
51+
`cancelAndDelete(final String url, final OnDeleteTaskListener listener)`
52+
53+
### 下载监听
54+
55+
```
56+
M3U8Downloader.getInstance().setOnM3U8DownloadListener(onM3U8DownloadListener);
57+
58+
private OnM3U8DownloadListener onM3U8DownloadListener = new OnM3U8DownloadListener() {
59+
60+
@Override
61+
public void onDownloadItem(M3U8Task task, long itemFileSize, int totalTs, int curTs) {
62+
super.onDownloadItem(task, itemFileSize, totalTs, curTs);
63+
//下载切片监听,非UI线程
64+
}
65+
66+
@Override
67+
public void onDownloadSuccess(M3U8Task task) {
68+
super.onDownloadSuccess(task);
69+
//下载成功
70+
}
71+
72+
@Override
73+
public void onDownloadPending(M3U8Task task) {
74+
super.onDownloadPending(task);
75+
//加入队列,任务挂起
76+
}
77+
78+
@Override
79+
public void onDownloadPause(M3U8Task task) {
80+
super.onDownloadPause(task);
81+
//任务暂停
82+
}
83+
84+
@Override
85+
public void onDownloadProgress(final M3U8Task task) {
86+
super.onDownloadProgress(task);
87+
//下载进度,非UI线程
88+
}
89+
90+
@Override
91+
public void onDownloadPrepare(final M3U8Task task) {
92+
super.onDownloadPrepare(task);
93+
//准备下载
94+
}
95+
96+
@Override
97+
public void onDownloadError(final M3U8Task task, Throwable errorMsg) {
98+
super.onDownloadError(task, errorMsg);
99+
//下载错误,非UI线程
100+
}
101+
102+
};
103+
```
104+
105+
### M3U8Task
106+
107+
```
108+
private String url; //下载链接
109+
private int state = M3U8TaskState.DEFAULT; //下载状态
110+
private long speed; //下载速度
111+
private float progress; //下载进度
112+
private M3U8 m3U8; //下载成功后得到
113+
```
114+
### 加密
115+
加密后视频切片文件名乱序,并移除后缀。
116+
```
117+
//设置密匙
118+
M3U8Downloader.getInstance().setEncryptKey(encryptKey);
119+
//获取随机密匙
120+
AES128Utils.getAESKey()
121+
```
122+
123+
更多加密解密 [M3U8EncryptHelper](https://github.com/Jay-Goo/M3U8Downloader/blob/master/library/src/main/java/jaygoo/library/m3u8downloader/M3U8EncryptHelper.java)
124+
125+
### 本地播放
126+
普通未加密请使用 [M3U8HttpServer](https://github.com/Jay-Goo/M3U8HttpServer)
127+
128+
加密请参考 [EncryptM3U8Server](https://github.com/Jay-Goo/M3U8Downloader/blob/master/app/src/main/java/jaygoo/m3u8downloader/EncryptM3U8Server.java)
129+
130+
具体使用样例参考 [FullScreenActivity](https://github.com/Jay-Goo/M3U8Downloader/blob/master/app/src/main/java/jaygoo/m3u8downloader/FullScreenActivity.java)
131+
132+
# 致谢
133+
[huangdali - M3U8Manger](https://github.com/huangdali/M3U8Manger)

0 commit comments

Comments
 (0)