修复组合任务在获取子任务信息的过程中,手动停止或删除,没有回调的问题

This commit is contained in:
laoyuyu
2020-12-09 21:22:01 +08:00
parent 35e66caab5
commit 9db8f1e9c0
16 changed files with 174 additions and 54 deletions

View File

@@ -115,6 +115,14 @@ final public class M3U8InfoTask implements IInfoTask {
mCallback = callback;
}
@Override public void stop() {
this.isStop = true;
}
@Override public void cancel() {
this.isStop = true;
}
private void handleConnect(String tsListUrl, HttpURLConnection conn) throws IOException {
int code = conn.getResponseCode();
if (code == HttpURLConnection.HTTP_OK) {
@@ -205,8 +213,7 @@ final public class M3U8InfoTask implements IInfoTask {
}
CompleteInfo info = new CompleteInfo();
info.obj = extInf;
mCallback.onSucceed(mEntity.getKey(), info);
onSucceed(info);
if (fos != null) {
fos.close();
}
@@ -223,6 +230,13 @@ final public class M3U8InfoTask implements IInfoTask {
}
}
private void onSucceed(CompleteInfo info) {
if (isStop) {
return;
}
mCallback.onSucceed(mEntity.getKey(), info);
}
/**
* 添加切片信息到索引文件中
* 直播下载的索引只记录头部信息不记录EXTINF中的信息该信息在onGetPeer的方法中添加。
@@ -362,6 +376,9 @@ final public class M3U8InfoTask implements IInfoTask {
}
private void failDownload(String errorInfo, boolean needRetry) {
if (isStop) {
return;
}
mCallback.onFail(mEntity, new AriaM3U8Exception(errorInfo), needRetry);
}