diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index 45d0bca2f..463b984f7 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -170,11 +170,6 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic return ijkPlayer; } - public VideoSize getVideoSize() { - if (isExo()) return exo().getVideoSize(); - return new VideoSize(ijk().getVideoWidth(), ijk().getVideoHeight()); - } - public Map getHeaders() { return headers == null ? new HashMap<>() : checkUa(headers); } @@ -234,6 +229,14 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic return Util.format(builder, formatter, time); } + public int getVideoWidth() { + return isExo() ? exoPlayer.getVideoSize().width : ijkPlayer.getVideoWidth(); + } + + public int getVideoHeight() { + return isExo() ? exoPlayer.getVideoSize().height : ijkPlayer.getVideoHeight(); + } + public float getSpeed() { if (isExo() && exoPlayer != null) return exoPlayer.getPlaybackParameters().speed; if (isIjk() && ijkPlayer != null) return ijkPlayer.getSpeed(); @@ -444,14 +447,6 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic } } - private int getVideoWidth() { - return isExo() ? exoPlayer.getVideoSize().width : ijkPlayer.getVideoWidth(); - } - - private int getVideoHeight() { - return isExo() ? exoPlayer.getVideoSize().height : ijkPlayer.getVideoHeight(); - } - private void playExo() { if (exoPlayer == null) return; exoPlayer.play(); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index f029a7e54..bb3bff5c9 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -1143,7 +1143,7 @@ public class LiveActivity extends BaseActivity implements Clock.Callback, Custom super.onUserLeaveHint(); if (isRedirect()) return; if (isLock()) App.post(this::onLock, 500); - if (mPlayers.haveTrack(C.TRACK_TYPE_VIDEO)) mPiP.enter(this, mPlayers.getVideoSize(), Setting.getLiveScale()); + if (mPlayers.haveTrack(C.TRACK_TYPE_VIDEO)) mPiP.enter(this, mPlayers.getVideoWidth(), mPlayers.getVideoHeight(), Setting.getLiveScale()); } @Override diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index f1dc61a51..09a995b46 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -1694,7 +1694,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo super.onUserLeaveHint(); if (isRedirect()) return; if (isLock()) App.post(this::onLock, 500); - if (mPlayers.haveTrack(C.TRACK_TYPE_VIDEO)) mPiP.enter(this, mPlayers.getVideoSize(), getScale()); + if (mPlayers.haveTrack(C.TRACK_TYPE_VIDEO)) mPiP.enter(this, mPlayers.getVideoWidth(), mPlayers.getVideoHeight(), getScale()); } @Override diff --git a/app/src/mobile/java/com/fongmi/android/tv/utils/PiP.java b/app/src/mobile/java/com/fongmi/android/tv/utils/PiP.java index 2ba4d333c..9e098ea3d 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/utils/PiP.java +++ b/app/src/mobile/java/com/fongmi/android/tv/utils/PiP.java @@ -13,7 +13,6 @@ import android.view.View; import androidx.annotation.DrawableRes; import androidx.annotation.StringRes; -import androidx.media3.common.VideoSize; import androidx.media3.ui.R; import com.fongmi.android.tv.App; @@ -72,24 +71,24 @@ public class PiP { } } - public void enter(Activity activity, VideoSize size, int scale) { + public void enter(Activity activity, int width, int height, int scale) { try { if (noPiP() || activity.isInPictureInPictureMode() || !Setting.isBackgroundPiP()) return; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) builder.setAutoEnterEnabled(true); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) builder.setSeamlessResizeEnabled(true); if (scale == 1) builder.setAspectRatio(new Rational(16, 9)); else if (scale == 2) builder.setAspectRatio(new Rational(4, 3)); - else builder.setAspectRatio(getRational(size)); + else builder.setAspectRatio(getRational(width, height)); activity.enterPictureInPictureMode(builder.build()); } catch (Exception e) { e.printStackTrace(); } } - private Rational getRational(VideoSize size) { + private Rational getRational(int width, int height) { Rational limitWide = new Rational(239, 100); Rational limitTall = new Rational(100, 239); - Rational rational = new Rational(size.width, size.height); + Rational rational = new Rational(width, height); if (rational.isInfinite()) return new Rational(16, 9); if (rational.floatValue() > limitWide.floatValue()) return limitWide; if (rational.floatValue() < limitTall.floatValue()) return limitTall;