Fix timeout bug

pull/123/head
FongMi 3 years ago
parent 86633ec3f7
commit 8ef6a2fcdf
  1. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 2
      app/src/main/java/com/fongmi/android/tv/App.java
  3. 9
      app/src/main/java/com/fongmi/android/tv/player/Players.java

@ -284,8 +284,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mViewModel.player.observe(this, result -> {
boolean useParse = (result.getPlayUrl().isEmpty() && ApiConfig.get().getFlags().contains(result.getFlag())) || result.getJx() == 1;
mBinding.control.parseLayout.setVisibility(mParseAdapter.size() > 0 && useParse ? View.VISIBLE : View.GONE);
mPlayers.setTimeout(getSite().isSwitchable() ? Constant.TIMEOUT_PLAY : -1);
mPlayers.start(result, useParse);
mPlayers.start(result, useParse, getSite().isSwitchable() ? Constant.TIMEOUT_PLAY : -1);
resetFocus();
});
mViewModel.result.observe(this, result -> {

@ -48,7 +48,7 @@ public class App extends Application {
public static void post(Runnable runnable, long delayMillis) {
get().handler.removeCallbacks(runnable);
get().handler.postDelayed(runnable, delayMillis);
if (delayMillis >= 0) get().handler.postDelayed(runnable, delayMillis);
}
public static void removeCallbacks(Runnable runnable) {

@ -262,10 +262,6 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM
}
}
public void setTimeout(int timeout) {
this.timeout = timeout;
}
public void start(Channel channel) {
if (channel.getUrl().isEmpty()) {
ErrorEvent.url();
@ -274,13 +270,14 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM
}
}
public void start(Result result, boolean useParse) {
public void start(Result result, boolean useParse, int timeout) {
if (result.getUrl().isEmpty()) {
ErrorEvent.url();
} else if (result.getParse(1) == 1 || result.getJx() == 1) {
stopParse();
parseTask = ParseTask.create(this).run(result, useParse);
} else {
this.timeout = timeout;
setMediaSource(result);
}
}
@ -344,7 +341,7 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM
}
private void setTimeoutCheck() {
if (timeout > 0) App.post(runnable, timeout);
App.post(runnable, timeout);
PlayerEvent.state(0);
}

Loading…
Cancel
Save