m3u8增加了ignoreFailureTs方法,忽略虾类失败的ts切片
修复在dialogFragment的`onCreateDialog()`注册导致的注解不生效问题
This commit is contained in:
@@ -73,8 +73,16 @@ final class WidgetLiftManager {
|
||||
|
||||
/**
|
||||
* 处理对话框取消或dismiss
|
||||
*
|
||||
* @return true 设置了dialog的销毁事件。false 没有设置dialog的销毁事件
|
||||
*/
|
||||
boolean handleDialogLift(Dialog dialog) {
|
||||
if (dialog == null) {
|
||||
ALog.w(TAG,
|
||||
"dialog 为空,没有设置自动销毁事件,为了防止内存泄露,请在dismiss方法中调用Aria.download(this).unRegister();来注销事件\n"
|
||||
+ "如果你使用的是DialogFragment,那么你需要在onDestroy()中进行销毁Aria事件操作");
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
Field dismissField = CommonUtil.getField(dialog.getClass(), "mDismissMessage");
|
||||
Message dismissMsg = (Message) dismissField.get(dialog);
|
||||
|
||||
@@ -75,50 +75,23 @@ public class ProxyHelper {
|
||||
return result;
|
||||
}
|
||||
result = new HashSet<>();
|
||||
try {
|
||||
if (getClass().getClassLoader()
|
||||
.loadClass(className.concat(TaskEnum.DOWNLOAD_GROUP.proxySuffix))
|
||||
!= null) {
|
||||
result.add(PROXY_TYPE_DOWNLOAD_GROUP);
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
//e.printStackTrace();
|
||||
if (checkProxyExist(className, TaskEnum.DOWNLOAD_GROUP.proxySuffix)) {
|
||||
result.add(PROXY_TYPE_DOWNLOAD_GROUP);
|
||||
}
|
||||
try {
|
||||
if (getClass().getClassLoader().loadClass(className.concat(TaskEnum.DOWNLOAD.proxySuffix))
|
||||
!= null) {
|
||||
result.add(PROXY_TYPE_DOWNLOAD);
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
//e.printStackTrace();
|
||||
if (checkProxyExist(className, TaskEnum.DOWNLOAD.proxySuffix)) {
|
||||
result.add(PROXY_TYPE_DOWNLOAD);
|
||||
}
|
||||
|
||||
try {
|
||||
if (getClass().getClassLoader().loadClass(className.concat(TaskEnum.UPLOAD.proxySuffix))
|
||||
!= null) {
|
||||
result.add(PROXY_TYPE_UPLOAD);
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
//e.printStackTrace();
|
||||
if (checkProxyExist(className, TaskEnum.UPLOAD.proxySuffix)) {
|
||||
result.add(PROXY_TYPE_UPLOAD);
|
||||
}
|
||||
|
||||
try {
|
||||
if (getClass().getClassLoader().loadClass(className.concat(TaskEnum.M3U8_PEER.proxySuffix))
|
||||
!= null) {
|
||||
result.add(PROXY_TYPE_M3U8_PEER);
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
//e.printStackTrace();
|
||||
if (checkProxyExist(className, TaskEnum.M3U8_PEER.proxySuffix)) {
|
||||
result.add(PROXY_TYPE_M3U8_PEER);
|
||||
}
|
||||
|
||||
try {
|
||||
if (getClass().getClassLoader()
|
||||
.loadClass(className.concat(TaskEnum.DOWNLOAD_GROUP_SUB.proxySuffix))
|
||||
!= null) {
|
||||
result.add(PROXY_TYPE_DOWNLOAD_GROUP_SUB);
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
//e.printStackTrace();
|
||||
if (checkProxyExist(className, TaskEnum.DOWNLOAD_GROUP_SUB.proxySuffix)) {
|
||||
result.add(PROXY_TYPE_DOWNLOAD_GROUP_SUB);
|
||||
}
|
||||
|
||||
if (!result.isEmpty()) {
|
||||
@@ -126,4 +99,20 @@ public class ProxyHelper {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private boolean checkProxyExist(String className, String proxySuffix) {
|
||||
String clsName = className.concat(proxySuffix);
|
||||
|
||||
try {
|
||||
if (getClass().getClassLoader().loadClass(clsName) != null) {
|
||||
return true;
|
||||
}
|
||||
if (Class.forName(clsName) != null) {
|
||||
return true;
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
//e.printStackTrace();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,12 +33,21 @@ public class M3U8Option<OP extends M3U8Option> extends BaseOption {
|
||||
private ITsMergeHandler mergeHandler;
|
||||
private IBandWidthUrlConverter bandWidthUrlConverter;
|
||||
private IKeyUrlConverter keyUrlConverter;
|
||||
private boolean ignoreFailureTs = false;
|
||||
|
||||
M3U8Option() {
|
||||
super();
|
||||
ComponentUtil.getInstance().checkComponentExist(ComponentUtil.COMPONENT_TYPE_M3U8);
|
||||
}
|
||||
|
||||
/**
|
||||
* 忽略下载失败的ts切片,即使有失败的切片,下载完成后也要合并所有切片,并进入complete回调
|
||||
*/
|
||||
public OP ignoreFailureTs() {
|
||||
this.ignoreFailureTs = true;
|
||||
return (OP) this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成m3u8索引文件
|
||||
* 注意:创建索引文件,{@link #merge(boolean)}方法设置与否都不再合并文件
|
||||
|
||||
Reference in New Issue
Block a user