Auto full screen when change episode

pull/5/head
FongMi 4 years ago
parent 7e2d548cb5
commit a70534a9bc
  1. 9
      app/src/main/java/com/fongmi/bear/player/Players.java
  2. 5
      app/src/main/java/com/fongmi/bear/ui/activity/DetailActivity.java
  3. 11
      app/src/main/java/com/fongmi/bear/ui/activity/PlayActivity.java

@ -27,6 +27,7 @@ public class Players implements Player.Listener {
private Formatter formatter;
private ExoPlayer exoPlayer;
private Handler handler;
private String videoKey;
private static class Loader {
static volatile Players INSTANCE = new Players();
@ -49,6 +50,14 @@ public class Players implements Player.Listener {
return exoPlayer;
}
public String getVideoKey() {
return videoKey;
}
public void setVideoKey(String videoKey) {
this.videoKey = videoKey;
}
public String getSpeed() {
return String.format(Locale.getDefault(), "%.2f", exoPlayer.getPlaybackParameters().speed);
}

@ -47,7 +47,6 @@ public class DetailActivity extends BaseActivity {
private EpisodePresenter mEpisodePresenter;
private SiteViewModel mSiteViewModel;
private View mOldView;
private boolean init;
private String getId() {
return getIntent().getStringExtra("id");
@ -95,7 +94,8 @@ public class DetailActivity extends BaseActivity {
});
mEpisodePresenter.setOnClickListener(item -> {
setEpisodeActivated(item);
getPlayer(item.getUrl());
if (Players.get().isPlaying()) mBinding.frame.performClick();
else getPlayer(item.getUrl());
});
mBinding.frame.setOnClickListener(view -> {
mBinding.video.setPlayer(null);
@ -122,6 +122,7 @@ public class DetailActivity extends BaseActivity {
private void getPlayer(String id) {
mBinding.progress.getRoot().setVisibility(View.VISIBLE);
mSiteViewModel.playerContent(getVodFlag().getFlag(), id);
Players.get().setVideoKey(id);
}
private void setViewModel() {

@ -59,7 +59,6 @@ public class PlayActivity extends BaseActivity implements KeyDownImpl {
mControl.speed.setText(Players.get().getSpeed());
mBinding.video.setResizeMode(Prefers.getScale());
mBinding.video.setControllerShowTimeoutMs(3000);
mBinding.video.setPlayer(Players.get().exo());
if (Players.get().isIdle()) showProgress();
setViewModel();
findCurrent();
@ -86,11 +85,20 @@ public class PlayActivity extends BaseActivity implements KeyDownImpl {
for (int i = 0; i < mVodFlag.getEpisodes().size(); i++) {
if (mVodFlag.getEpisodes().get(i).isActivated()) {
mCurrent = i;
checkVideoKey();
mBinding.video.setPlayer(Players.get().exo());
break;
}
}
}
private void checkVideoKey() {
if (!mVodFlag.getEpisodes().get(mCurrent).getUrl().equals(Players.get().getVideoKey())) {
Players.get().stop();
getPlayer();
}
}
private void showProgress() {
if (mBinding.progress.getRoot().getVisibility() == View.GONE) {
mBinding.progress.getRoot().setVisibility(View.VISIBLE);
@ -107,6 +115,7 @@ public class PlayActivity extends BaseActivity implements KeyDownImpl {
Vod.Flag.Episode episode = mVodFlag.getEpisodes().get(mCurrent);
mSiteViewModel.playerContent(mVodFlag.getFlag(), episode.getUrl());
Notify.show(ResUtil.getString(R.string.play_ready, episode.getName()));
Players.get().setVideoKey(episode.getUrl());
mVodFlag.setActivated(episode);
showProgress();
}

Loading…
Cancel
Save