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 fb27b029f..b5e1c516b 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 @@ -1039,7 +1039,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List super.onUserLeaveHint(); if (isRedirect()) return; if (isLock()) App.post(this::onLock, 500); - if (mPlayers.haveTrack(C.TRACK_TYPE_VIDEO)) mPiP.enter(this, Setting.getLiveScale() == 2); + if (mPlayers.haveTrack(C.TRACK_TYPE_VIDEO)) mPiP.enter(this, mPlayers.get().getVideoSize(), 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 e65ebedc5..51840d2ce 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 @@ -1490,7 +1490,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, getScale() == 2); + if (mPlayers.haveTrack(C.TRACK_TYPE_VIDEO)) mPiP.enter(this, mPlayers.get().getVideoSize(), 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 e3392fe3e..5aef92cd0 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,6 +13,7 @@ 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; @@ -71,12 +72,14 @@ public class PiP { } } - public void enter(Activity activity, boolean four) { + public void enter(Activity activity, VideoSize size, int scale) { try { if (noPiP() || activity.isInPictureInPictureMode() || !Setting.isBackgroundPiP()) return; - builder.setAspectRatio(new Rational(four ? 4 : 16, four ? 3 : 9)); 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(new Rational(size.width, size.height)); activity.enterPictureInPictureMode(builder.build()); } catch (Exception e) { e.printStackTrace();