pull/590/head
FongMi 10 months ago
parent 7eb9f12b88
commit e91fa5214c
  1. 9
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  2. 19
      app/src/main/java/com/fongmi/android/tv/Constant.java
  3. 3
      app/src/main/java/com/fongmi/android/tv/bean/History.java
  4. 5
      app/src/main/java/com/fongmi/android/tv/bean/Live.java
  5. 5
      app/src/main/java/com/fongmi/android/tv/bean/Site.java
  6. 10
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  7. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  8. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  9. 6
      catvod/src/main/java/com/github/catvod/net/OkHttp.java

@ -101,7 +101,6 @@ import java.util.Objects;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
public class VideoActivity extends BaseActivity implements CustomKeyDownVod.Listener, TrackDialog.Listener, ArrayPresenter.OnClickListener, Clock.Callback {
@ -784,7 +783,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
long current = mPlayers.getPosition();
long duration = mPlayers.getDuration();
if (current < 0 || duration < 0) return;
if (current > TimeUnit.MINUTES.toMillis(5)) return;
if (current > Constant.OPED_LIMIT) return;
setOpening(current);
}
@ -810,7 +809,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
long current = mPlayers.getPosition();
long duration = mPlayers.getDuration();
if (current < 0 || duration < 0) return;
if (duration - current > TimeUnit.MINUTES.toMillis(5)) return;
if (duration - current > Constant.OPED_LIMIT) return;
setEnding(duration - current);
}
@ -1342,9 +1341,9 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
public void onKeyUp() {
long current = mPlayers.getPosition();
long duration = mPlayers.getDuration();
if (duration - current < TimeUnit.MINUTES.toMillis(5)) {
if (duration - current < Constant.OPED_LIMIT) {
showControl(mBinding.control.ending);
} else if (current < TimeUnit.MINUTES.toMillis(5)) {
} else if (current < Constant.OPED_LIMIT) {
showControl(mBinding.control.opening);
} else {
showControl(getFocus2());

@ -4,33 +4,20 @@ import java.util.concurrent.TimeUnit;
public class Constant {
//快進時間單位
public static final long INTERVAL_SEEK = TimeUnit.SECONDS.toMillis(10);
//控件隱藏時間
public static final long INTERVAL_HIDE = TimeUnit.SECONDS.toMillis(5);
//網路偵測間隔
public static final long INTERVAL_TRAFFIC = TimeUnit.SECONDS.toMillis(1);
//點播爬蟲時間
public static final long TIMEOUT_VOD = TimeUnit.SECONDS.toMillis(30);
//直播爬蟲時間
public static final long TIMEOUT_LIVE = TimeUnit.SECONDS.toMillis(30);
//節目爬蟲時間
public static final long TIMEOUT_EPG = TimeUnit.SECONDS.toMillis(5);
//節目爬蟲時間
public static final long TIMEOUT_XML = TimeUnit.SECONDS.toMillis(15);
//播放超時時間
public static final long TIMEOUT_PLAY = TimeUnit.SECONDS.toMillis(15);
//彈幕超時時間
public static final long TIMEOUT_SYNC = TimeUnit.SECONDS.toMillis(2);
public static final long TIMEOUT_DANMAKU = TimeUnit.SECONDS.toMillis(30);
//解析預設時間
public static final long TIMEOUT_PARSE_DEF = TimeUnit.SECONDS.toMillis(15);
//嗅探超時時間
public static final long TIMEOUT_PARSE_WEB = TimeUnit.SECONDS.toMillis(15);
//直播解析時間
public static final long TIMEOUT_PARSE_LIVE = TimeUnit.SECONDS.toMillis(10);
//同步超時時間
public static final long TIMEOUT_SYNC = TimeUnit.SECONDS.toMillis(2);
//主要線程數量
public static final long HISTORY_TIME = TimeUnit.DAYS.toMillis(60);
public static final long OPED_LIMIT = TimeUnit.MINUTES.toMillis(5);
public static final int THREAD_POOL = 10;
}

@ -9,6 +9,7 @@ import androidx.room.Entity;
import androidx.room.PrimaryKey;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Constant;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.api.config.VodConfig;
import com.fongmi.android.tv.db.AppDatabase;
@ -244,7 +245,7 @@ public class History {
}
public static List<History> get(int cid) {
return AppDatabase.get().getHistoryDao().find(cid, System.currentTimeMillis() - TimeUnit.DAYS.toMillis(30));
return AppDatabase.get().getHistoryDao().find(cid, System.currentTimeMillis() - Constant.HISTORY_TIME);
}
public static History find(String key) {

@ -26,6 +26,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@Entity
public class Live {
@ -219,8 +220,8 @@ public class Live {
this.keep = keep;
}
public Integer getTimeout() {
return timeout == null ? Constant.TIMEOUT_PLAY : Math.max(timeout, 1) * 1000;
public long getTimeout() {
return timeout == null ? Constant.TIMEOUT_PLAY : TimeUnit.SECONDS.toMillis(Math.max(timeout, 1));
}
public JsonElement getHeader() {

@ -25,6 +25,7 @@ import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.TimeUnit;
import okhttp3.Headers;
@ -186,8 +187,8 @@ public class Site implements Parcelable {
return indexs == null ? 0 : indexs;
}
public Integer getTimeout() {
return timeout == null ? Constant.TIMEOUT_PLAY : Math.max(timeout, 1) * 1000;
public long getTimeout() {
return timeout == null ? Constant.TIMEOUT_PLAY : TimeUnit.SECONDS.toMillis(Math.max(timeout, 1));
}
public Integer getSearchable() {

@ -400,7 +400,7 @@ public class Players implements Player.Listener, ParseCallback {
App.removeCallbacks(runnable);
}
public void start(Channel channel, int timeout) {
public void start(Channel channel, long timeout) {
if (channel.getDrm() != null && !FrameworkMediaDrm.isCryptoSchemeSupported(channel.getDrm().getUUID())) {
ErrorEvent.drm(tag);
} else if (channel.hasMsg()) {
@ -414,7 +414,7 @@ public class Players implements Player.Listener, ParseCallback {
}
}
public void start(Result result, boolean useParse, int timeout) {
public void start(Result result, boolean useParse, long timeout) {
if (result.getDrm() != null && !FrameworkMediaDrm.isCryptoSchemeSupported(result.getDrm().getUUID())) {
ErrorEvent.drm(tag);
} else if (result.hasMsg()) {
@ -467,15 +467,15 @@ public class Players implements Player.Listener, ParseCallback {
setMediaItem(headers, url, format, drm, subs, danmakus, Constant.TIMEOUT_PLAY);
}
private void setMediaItem(Channel channel, int timeout) {
private void setMediaItem(Channel channel, long timeout) {
setMediaItem(channel.getHeaders(), channel.getUrl(), channel.getFormat(), channel.getDrm(), new ArrayList<>(), new ArrayList<>(), timeout);
}
private void setMediaItem(Result result, int timeout) {
private void setMediaItem(Result result, long timeout) {
setMediaItem(result.getHeaders(), result.getRealUrl(), result.getFormat(), result.getDrm(), result.getSubs(), result.getDanmaku(), timeout);
}
private void setMediaItem(Map<String, String> headers, String url, String format, Drm drm, List<Sub> subs, List<Danmaku> danmakus, int timeout) {
private void setMediaItem(Map<String, String> headers, String url, String format, Drm drm, List<Sub> subs, List<Danmaku> danmakus, long timeout) {
if (exoPlayer != null) exoPlayer.setMediaItem(ExoUtil.getMediaItem(this.headers = checkUa(headers), UrlUtil.uri(this.url = url), this.format = format, this.drm = drm, checkSub(this.subs = subs), decode));
if (danPlayer != null) setDanmaku(this.danmakus = danmakus);
App.post(runnable, timeout);

@ -115,7 +115,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
return LiveConfig.get().getHome();
}
private int getTimeout() {
private long getTimeout() {
return getHome().isEmpty() ? Constant.TIMEOUT_PLAY : getHome().getTimeout();
}

@ -804,7 +804,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
long current = mPlayers.getPosition();
long duration = mPlayers.getDuration();
if (current < 0 || duration < 0) return;
if (duration - current > TimeUnit.MINUTES.toMillis(5)) return;
if (duration - current > Constant.OPED_LIMIT) return;
setEnding(duration - current);
setR1Callback();
}
@ -824,7 +824,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
long current = mPlayers.getPosition();
long duration = mPlayers.getDuration();
if (current < 0 || duration < 0) return;
if (current > TimeUnit.MINUTES.toMillis(5)) return;
if (current > Constant.OPED_LIMIT) return;
setOpening(current);
setR1Callback();
}

@ -109,15 +109,15 @@ public class OkHttp {
return get().client = getBuilder().build();
}
public static OkHttpClient client(int timeout) {
public static OkHttpClient client(long timeout) {
return client().newBuilder().connectTimeout(timeout, TimeUnit.MILLISECONDS).readTimeout(timeout, TimeUnit.MILLISECONDS).writeTimeout(timeout, TimeUnit.MILLISECONDS).build();
}
public static OkHttpClient noRedirect(int timeout) {
public static OkHttpClient noRedirect(long timeout) {
return client().newBuilder().connectTimeout(timeout, TimeUnit.MILLISECONDS).readTimeout(timeout, TimeUnit.MILLISECONDS).writeTimeout(timeout, TimeUnit.MILLISECONDS).followRedirects(false).followSslRedirects(false).build();
}
public static OkHttpClient client(boolean redirect, int timeout) {
public static OkHttpClient client(boolean redirect, long timeout) {
return redirect ? client(timeout) : noRedirect(timeout);
}

Loading…
Cancel
Save