release
FongMi 1 year ago
parent ece5642fc9
commit f640deff34
  1. 7
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java
  2. 15
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  3. 10
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  4. 3
      app/src/main/java/com/fongmi/android/tv/ui/dialog/TrackDialog.java
  5. 15
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java

@ -175,7 +175,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
}
private void onReset() {
mPlayers.setPosition(position = C.TIME_UNSET);
position = duration = C.TIME_UNSET;
start();
}
@ -278,7 +278,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
public void onPlayerEvent(PlayerEvent event) {
switch (event.getState()) {
case PlayerEvent.PREPARE:
mClock.setCallback(this);
mPlayers.seekTo(position);
setState(RenderState.PREPARING);
break;
case Player.STATE_IDLE:
@ -300,6 +300,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
setMetadata();
mPlayers.reset();
setTrackVisible();
mClock.setCallback(this);
break;
case PlayerEvent.SIZE:
mBinding.widget.size.setText(mPlayers.getSizeText());
@ -380,8 +381,8 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List
@Override
public void onTimeChanged() {
position = mPlayers.getPosition();
duration = mPlayers.getDuration();
mPlayers.setPosition(position = mPlayers.getPosition());
}
@Override

@ -965,7 +965,6 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
mHistory.setVodRemarks(item.getName());
mHistory.setVodFlag(getFlag().getFlag());
mHistory.setCreateTime(System.currentTimeMillis());
mPlayers.setPosition(Math.max(mHistory.getOpening(), position));
}
private void checkKeep() {
@ -998,13 +997,12 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
@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());
if (mHistory.getEnding() > 0 && duration > 0 && mHistory.getEnding() + position >= duration) {
mClock.setCallback(null);
checkNext();
checkEnded();
}
}
@ -1036,7 +1034,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
switch (event.getState()) {
case PlayerEvent.PREPARE:
setInitTrack(true);
mClock.setCallback(this);
setPosition();
break;
case Player.STATE_BUFFERING:
showProgress();
@ -1052,6 +1050,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
setInitTrack();
mPlayers.reset();
setTrackVisible();
mClock.setCallback(this);
break;
case PlayerEvent.SIZE:
mBinding.widget.size.setText(mPlayers.getSizeText());
@ -1059,6 +1058,10 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
}
}
private void setPosition() {
if (mHistory != null) mPlayers.seekTo(Math.max(mHistory.getOpening(), mHistory.getPosition()));
}
private void checkEnded() {
if (mBinding.control.loop.isActivated()) {
onReset(true);
@ -1234,9 +1237,9 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
}
private void onPlay() {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
if (mHistory != null && mPlayers.isEnded()) mPlayers.seekTo(mHistory.getOpening());
if (mPlayers.isIdle()) mPlayers.prepare();
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
if (!mPlayers.isEmpty() && mPlayers.isIdle()) mPlayers.prepare();
mPlayers.play();
hideCenter();
}

@ -83,7 +83,6 @@ public class Players implements Player.Listener, ParseCallback {
private Drm drm;
private Sub sub;
private long position;
private int decode;
private int retry;
@ -98,7 +97,6 @@ public class Players implements Player.Listener, ParseCallback {
builder = new StringBuilder();
runnable = ErrorEvent::timeout;
formatter = new Formatter(builder, Locale.getDefault());
position = C.TIME_UNSET;
createSession(activity);
}
@ -153,10 +151,6 @@ public class Players implements Player.Listener, ParseCallback {
setMediaItem();
}
public void setPosition(long position) {
this.position = position;
}
public void reset() {
removeTimeoutCheck();
retry = 0;
@ -416,12 +410,12 @@ public class Players implements Player.Listener, ParseCallback {
}
private void setMediaItem(Map<String, String> headers, String url, String format, Drm drm, List<Sub> subs, int 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), position);
if (exoPlayer != null) exoPlayer.prepare();
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));
App.post(runnable, timeout);
session.setActive(true);
PlayerEvent.prepare();
Logger.t(TAG).d(url);
prepare();
}
private void removeTimeoutCheck() {

@ -15,6 +15,7 @@ import androidx.media3.common.MimeTypes;
import androidx.media3.common.Tracks;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.bean.Sub;
import com.fongmi.android.tv.bean.Track;
@ -133,7 +134,7 @@ public final class TrackDialog extends BaseDialog implements TrackAdapter.OnClic
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != Activity.RESULT_OK || requestCode != FileChooser.REQUEST_PICK_FILE) return;
player.setSub(Sub.from(FileChooser.getPathFromUri(getContext(), data.getData())));
App.post(() -> player.setSub(Sub.from(FileChooser.getPathFromUri(App.get(), data.getData()))), 250);
dismiss();
}

@ -996,7 +996,6 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mHistory.setVodRemarks(item.getName());
mHistory.setVodFlag(getFlag().getFlag());
mHistory.setCreateTime(System.currentTimeMillis());
mPlayers.setPosition(Math.max(mHistory.getOpening(), position));
}
private void checkPlayImg(boolean playing) {
@ -1039,13 +1038,12 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
@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());
if (mHistory.getEnding() > 0 && duration > 0 && mHistory.getEnding() + position >= duration) {
mClock.setCallback(null);
checkNext();
checkEnded();
}
}
@ -1083,7 +1081,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
switch (event.getState()) {
case PlayerEvent.PREPARE:
setInitTrack(true);
mClock.setCallback(this);
setPosition();
break;
case Player.STATE_BUFFERING:
showProgress();
@ -1100,6 +1098,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
setInitTrack();
mPlayers.reset();
setTrackVisible();
mClock.setCallback(this);
break;
case PlayerEvent.SIZE:
checkPortrait();
@ -1108,6 +1107,10 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
}
}
private void setPosition() {
if (mHistory != null) mPlayers.seekTo(Math.max(mHistory.getOpening(), mHistory.getPosition()));
}
private void checkPortrait() {
if (isFullscreen() && !isRotate() && mPlayers.isPortrait()) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT);
@ -1285,9 +1288,9 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
}
private void onPlay() {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
if (mHistory != null && mPlayers.isEnded()) mPlayers.seekTo(mHistory.getOpening());
if (mPlayers.isIdle()) mPlayers.prepare();
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
if (!mPlayers.isEmpty() && mPlayers.isIdle()) mPlayers.prepare();
checkPlayImg(true);
mPlayers.play();
}

Loading…
Cancel
Save