Skip to content

Commit

Permalink
Fix bug
Browse files Browse the repository at this point in the history
  • Loading branch information
FongMi committed Jan 11, 2025
1 parent 3d0c0e2 commit aa45834
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ private String getName() {
private void checkAction() {
mAction = getIntent().getParcelableExtra(RendererInterfaceKt.keyExtraCastAction);
mBinding.widget.title.setText(getName());
position = duration = 0;
position = duration = C.TIME_UNSET;
start();
}

Expand Down Expand Up @@ -175,6 +175,7 @@ private boolean onSpeedLong() {
}

private void onReset() {
mPlayers.setPosition(position = C.TIME_UNSET);
start();
}

Expand Down Expand Up @@ -221,13 +222,15 @@ private void hideError() {
}

private void showInfo() {
mBinding.widget.center.setVisibility(View.VISIBLE);
mBinding.widget.info.setVisibility(View.VISIBLE);
mBinding.widget.center.setVisibility(View.VISIBLE);
mBinding.widget.exoDuration.setText(mPlayers.getDurationTime());
mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(0));
}

private void hideInfo() {
mBinding.widget.center.setVisibility(View.GONE);
mBinding.widget.info.setVisibility(View.GONE);
mBinding.widget.center.setVisibility(View.GONE);
}

private void showControl() {
Expand Down Expand Up @@ -336,15 +339,15 @@ private void onError(ErrorEvent event) {
}

private void onPaused() {
mBinding.widget.exoDuration.setText(mPlayers.getDurationTime());
mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(0));
setState(RenderState.PAUSED);
mPlayers.pause();
showInfo();
}

private void onPlay() {
setState(RenderState.PLAYING);
if (mPlayers.isEnded()) mPlayers.seekTo(C.TIME_UNSET);
if (mPlayers.isIdle()) mPlayers.prepare();
mPlayers.play();
hideCenter();
}
Expand Down Expand Up @@ -377,8 +380,8 @@ public void onSubtitleClick() {

@Override
public void onTimeChanged() {
position = mPlayers.getPosition();
duration = mPlayers.getDuration();
mPlayers.setPosition(position = mPlayers.getPosition());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -645,7 +645,6 @@ private void enterFullscreen() {
mKeyDown.setFull(true);
setFullscreen(true);
mFocus2 = null;
onPlay();
}

private void exitFullscreen() {
Expand Down Expand Up @@ -861,13 +860,15 @@ private void hideError() {
}

private void showInfo() {
mBinding.widget.center.setVisibility(View.VISIBLE);
mBinding.widget.info.setVisibility(View.VISIBLE);
mBinding.widget.center.setVisibility(View.VISIBLE);
mBinding.widget.exoDuration.setText(mPlayers.getDurationTime());
mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(0));
}

private void hideInfo() {
mBinding.widget.center.setVisibility(View.GONE);
mBinding.widget.info.setVisibility(View.GONE);
mBinding.widget.center.setVisibility(View.GONE);
}

private void showControl(View view) {
Expand Down Expand Up @@ -997,6 +998,7 @@ public void onSubtitleClick() {
@Override
public void onTimeChanged() {
long position, duration;
mPlayers.setPosition(mPlayers.getPosition());
mHistory.setPosition(position = mPlayers.getPosition());
mHistory.setDuration(duration = mPlayers.getDuration());
if (position >= 0 && duration > 0 && !Setting.isIncognito()) App.execute(() -> mHistory.update());
Expand Down Expand Up @@ -1226,15 +1228,15 @@ private void nextSite() {

private void onPaused() {
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
mBinding.widget.exoDuration.setText(mPlayers.getDurationTime());
mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(0));
if (isFullscreen()) showInfo();
else hideInfo();
mPlayers.pause();
}

private void onPlay() {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
if (mPlayers.isEnded()) mPlayers.seekTo(mHistory.getOpening());
if (mPlayers.isIdle()) mPlayers.prepare();
mPlayers.play();
hideCenter();
}
Expand Down
13 changes: 9 additions & 4 deletions app/src/main/java/com/fongmi/android/tv/player/Players.java
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,6 @@ public Map<String, String> getHeaders() {
}

public void setSub(Sub sub) {
setPosition(getPosition());
this.sub = sub;
setMediaItem();
}
Expand All @@ -159,7 +158,6 @@ public void setPosition(long position) {
}

public void reset() {
position = C.TIME_UNSET;
removeTimeoutCheck();
retry = 0;
}
Expand Down Expand Up @@ -216,10 +214,14 @@ public boolean isPlaying() {
return exoPlayer != null && exoPlayer.isPlaying();
}

public boolean isEnd() {
public boolean isEnded() {
return exoPlayer != null && exoPlayer.getPlaybackState() == Player.STATE_ENDED;
}

public boolean isIdle() {
return exoPlayer != null && exoPlayer.getPlaybackState() == Player.STATE_IDLE;
}

public boolean isEmpty() {
return TextUtils.isEmpty(getUrl());
}
Expand Down Expand Up @@ -309,6 +311,10 @@ public void seekTo(long time) {
if (exoPlayer != null) exoPlayer.seekTo(time);
}

public void prepare() {
if (exoPlayer != null) exoPlayer.prepare();
}

public void play() {
if (exoPlayer != null) exoPlayer.play();
}
Expand All @@ -320,7 +326,6 @@ public void pause() {
public void stop() {
if (parseJob != null) parseJob.stop();
if (exoPlayer != null) exoPlayer.stop();
if (exoPlayer != null) exoPlayer.clearMediaItems();
}

public void release() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1039,6 +1039,7 @@ public void onSubtitleClick() {
@Override
public void onTimeChanged() {
long position, duration;
mPlayers.setPosition(mPlayers.getPosition());
mHistory.setPosition(position = mPlayers.getPosition());
mHistory.setDuration(duration = mPlayers.getDuration());
if (position >= 0 && duration > 0 && !Setting.isIncognito()) App.execute(() -> mHistory.update());
Expand Down Expand Up @@ -1285,7 +1286,8 @@ private void onPaused() {

private void onPlay() {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
if (mPlayers.isEnd()) mPlayers.seekTo(mHistory.getOpening());
if (mPlayers.isEnded()) mPlayers.seekTo(mHistory.getOpening());
if (mPlayers.isIdle()) mPlayers.prepare();
checkPlayImg(true);
mPlayers.play();
}
Expand Down

0 comments on commit aa45834

Please sign in to comment.