修复m3u8、http上传记录重复的问题

This commit is contained in:
laoyuyu
2019-10-09 20:16:58 +08:00
parent 75ff995d81
commit 9f673503c1
10 changed files with 68 additions and 18 deletions

View File

@@ -15,6 +15,7 @@
*/
package com.arialyy.aria.m3u8;
import com.arialyy.aria.core.common.RecordHandler;
import com.arialyy.aria.core.download.DTaskWrapper;
import com.arialyy.aria.core.download.DownloadEntity;
import com.arialyy.aria.core.download.M3U8Entity;
@@ -127,8 +128,10 @@ public abstract class BaseM3U8Loader extends AbsLoader {
}
@Override protected IRecordHandler getRecordHandler(AbsTaskWrapper wrapper) {
return null;
RecordHandler handler = new RecordHandler(wrapper);
M3U8RecordAdapter adapter = new M3U8RecordAdapter((DTaskWrapper) wrapper);
handler.setAdapter(adapter);
return handler;
}
protected DownloadEntity getEntity() {

View File

@@ -21,8 +21,10 @@ import com.arialyy.aria.core.common.AbsRecordHandlerAdapter;
import com.arialyy.aria.core.download.DTaskWrapper;
import com.arialyy.aria.core.download.DownloadEntity;
import com.arialyy.aria.core.download.M3U8Entity;
import com.arialyy.aria.core.inf.IRecordHandler;
import com.arialyy.aria.core.wrapper.ITaskWrapper;
import com.arialyy.aria.util.ALog;
import com.arialyy.aria.util.RecordUtil;
import java.io.File;
import java.util.ArrayList;
@@ -33,11 +35,18 @@ import java.util.ArrayList;
public class M3U8RecordAdapter extends AbsRecordHandlerAdapter {
private M3U8TaskOption mOption;
public M3U8RecordAdapter(DTaskWrapper wrapper) {
M3U8RecordAdapter(DTaskWrapper wrapper) {
super(wrapper);
mOption = (M3U8TaskOption) wrapper.getM3u8Option();
}
@Override public void onPre() {
super.onPre();
if (getWrapper().getRequestType() == ITaskWrapper.M3U8_LIVE){
RecordUtil.delTaskRecord(getEntity().getFilePath(), IRecordHandler.TYPE_DOWNLOAD);
}
}
/**
* 不处理live的记录
*/

View File

@@ -52,19 +52,18 @@ public class M3U8LiveLoader extends BaseM3U8Loader {
private static final int EXEC_MAX_NUM = 4;
private Handler mStateHandler;
private ArrayBlockingQueue<Long> mFlagQueue = new ArrayBlockingQueue<>(EXEC_MAX_NUM);
private LiveStateManager mManager;
private ReentrantLock LOCK = new ReentrantLock();
private Condition mCondition = LOCK.newCondition();
private LinkedBlockingQueue<String> mPeerQueue = new LinkedBlockingQueue<>();
public M3U8LiveLoader(M3U8Listener listener, DTaskWrapper wrapper) {
M3U8LiveLoader(M3U8Listener listener, DTaskWrapper wrapper) {
super(listener, wrapper);
}
@Override protected IThreadState createStateManager(Looper looper) {
mManager = new LiveStateManager(looper, mListener);
mStateHandler = new Handler(looper, mManager);
return mManager;
LiveStateManager manager = new LiveStateManager(looper, mListener);
mStateHandler = new Handler(looper, manager);
return manager;
}
void offerPeer(String peerUrl) {

View File

@@ -154,6 +154,7 @@ public class M3U8LiveUtil extends AbsNormalLoaderUtil {
mInfoPool.execute(mInfoThread);
}
}, 0, mM3U8Option.getLiveUpdateInterval(), TimeUnit.MILLISECONDS);
getLoader().start();
}
private void closeTimer() {