diff --git a/app/build.gradle b/app/build.gradle index 03d266125..17e6c2a63 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -112,6 +112,7 @@ dependencies { implementation 'androidx.media:media:1.7.0' implementation 'androidx.room:room-runtime:2.6.1' implementation 'cat.ereza:customactivityoncrash:2.4.0' + implementation ('com.github.anilbeesetti.nextlib:nextlib-media3ext:0.7.1') { exclude group: 'androidx.media3', module: 'media3-exoplayer' } implementation 'com.github.bassaer:materialdesigncolors:1.0.0' implementation 'com.github.bumptech.glide:glide:4.16.0' implementation 'com.github.bumptech.glide:annotations:4.16.0' diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java index 8e6a7bb6a..6b13fc818 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java @@ -15,7 +15,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.media3.common.C; import androidx.media3.common.Player; -import androidx.media3.ui.PlayerView; import androidx.viewbinding.ViewBinding; import com.android.cast.dlna.dmr.CastAction; @@ -66,10 +65,6 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List private long duration; private int scale; - private PlayerView getExo() { - return Setting.getRender() == 0 ? mBinding.surface : mBinding.texture; - } - @Override protected ViewBinding getBinding() { return mBinding = ActivityCastBinding.inflate(getLayoutInflater()); @@ -138,20 +133,20 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List } private void setVideoView() { - mPlayers.set(getExo()); + mPlayers.set(mBinding.exo); setSubtitle(Setting.getSubtitle()); - getExo().setVisibility(View.VISIBLE); + mBinding.exo.setVisibility(View.VISIBLE); setScale(scale = Setting.getScale()); findViewById(R.id.timeBar).setNextFocusUpId(R.id.reset); mBinding.control.speed.setText(mPlayers.getSpeedText()); mBinding.control.speed.setEnabled(mPlayers.canAdjustSpeed()); - getExo().getSubtitleView().setStyle(ExoUtil.getCaptionStyle()); + mBinding.exo.getSubtitleView().setStyle(ExoUtil.getCaptionStyle()); mBinding.control.reset.setText(ResUtil.getStringArray(R.array.select_reset)[0]); } @Override public void setSubtitle(int size) { - getExo().getSubtitleView().setFixedTextSize(Dimension.SP, size); + mBinding.exo.getSubtitleView().setFixedTextSize(Dimension.SP, size); } private void setDecode() { @@ -159,7 +154,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List } private void setScale(int scale) { - getExo().setResizeMode(scale); + mBinding.exo.setResizeMode(scale); mBinding.control.scale.setText(ResUtil.getStringArray(R.array.select_scale)[scale]); } @@ -196,7 +191,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List private void onDecode() { mPlayers.toggleDecode(); - mPlayers.set(getExo()); + mPlayers.set(mBinding.exo); setDecode(); onReset(); } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 0e33468ad..4d330d9e4 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -17,7 +17,6 @@ import androidx.leanback.widget.OnChildViewHolderSelectedListener; import androidx.lifecycle.ViewModelProvider; import androidx.media3.common.C; import androidx.media3.common.Player; -import androidx.media3.ui.PlayerView; import androidx.recyclerview.widget.RecyclerView; import androidx.viewbinding.ViewBinding; @@ -99,10 +98,6 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick return getIntent().getBooleanExtra("empty", true); } - private PlayerView getExo() { - return Setting.getRender() == 0 ? mBinding.surface : mBinding.texture; - } - private Group getKeep() { return (Group) mGroupAdapter.get(0); } @@ -182,10 +177,10 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick } private void setVideoView() { - mPlayers.set(getExo()); + mPlayers.set(mBinding.exo); setScale(Setting.getLiveScale()); setSubtitle(Setting.getSubtitle()); - getExo().setVisibility(View.VISIBLE); + mBinding.exo.setVisibility(View.VISIBLE); findViewById(R.id.timeBar).setNextFocusUpId(R.id.player); mBinding.control.invert.setActivated(Setting.isInvert()); mBinding.control.across.setActivated(Setting.isAcross()); @@ -193,13 +188,13 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick mBinding.control.speed.setText(mPlayers.getSpeedText()); mBinding.control.decode.setText(mPlayers.getDecodeText()); mBinding.control.speed.setEnabled(mPlayers.canAdjustSpeed()); - getExo().getSubtitleView().setStyle(ExoUtil.getCaptionStyle()); + mBinding.exo.getSubtitleView().setStyle(ExoUtil.getCaptionStyle()); mBinding.control.home.setVisibility(LiveConfig.isOnly() ? View.GONE : View.VISIBLE); } @Override public void setSubtitle(int size) { - getExo().getSubtitleView().setFixedTextSize(Dimension.SP, size); + mBinding.exo.getSubtitleView().setFixedTextSize(Dimension.SP, size); } private void setDecode() { @@ -207,7 +202,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick } private void setScale(int scale) { - getExo().setResizeMode(scale); + mBinding.exo.setResizeMode(scale); mBinding.control.scale.setText(ResUtil.getStringArray(R.array.select_scale)[scale]); } @@ -385,7 +380,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick private void onDecode() { mPlayers.toggleDecode(); - mPlayers.set(getExo()); + mPlayers.set(mBinding.exo); setDecode(); fetch(); } @@ -503,13 +498,13 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick ImgUtil.load(url, R.drawable.radio, new CustomTarget<>() { @Override public void onResourceReady(@NonNull Drawable resource, @Nullable Transition transition) { - getExo().setDefaultArtwork(resource); + mBinding.exo.setDefaultArtwork(resource); setMetadata(); } @Override public void onLoadFailed(@Nullable Drawable error) { - getExo().setDefaultArtwork(error); + mBinding.exo.setDefaultArtwork(error); setMetadata(); } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 8f297775a..93bc8e1a6 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -28,7 +28,6 @@ import androidx.leanback.widget.OnChildViewHolderSelectedListener; import androidx.lifecycle.ViewModelProvider; import androidx.media3.common.C; import androidx.media3.common.Player; -import androidx.media3.ui.PlayerView; import androidx.recyclerview.widget.RecyclerView; import androidx.viewbinding.ViewBinding; @@ -261,10 +260,6 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List return mHistory != null && mHistory.getScale() != -1 ? mHistory.getScale() : Setting.getScale(); } - private PlayerView getExo() { - return Setting.getRender() == 0 ? mBinding.surface : mBinding.texture; - } - private boolean isReplay() { return Setting.getReset() == 1; } @@ -378,18 +373,18 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List } private void setVideoView() { - mPlayers.set(getExo()); - getExo().setVisibility(View.VISIBLE); + mPlayers.set(mBinding.exo); + mBinding.exo.setVisibility(View.VISIBLE); mBinding.control.decode.setText(mPlayers.getDecodeText()); mBinding.control.speed.setEnabled(mPlayers.canAdjustSpeed()); - getExo().getSubtitleView().setFixedTextSize(Dimension.SP, 16); - getExo().getSubtitleView().setStyle(ExoUtil.getCaptionStyle()); + mBinding.exo.getSubtitleView().setFixedTextSize(Dimension.SP, 16); + mBinding.exo.getSubtitleView().setStyle(ExoUtil.getCaptionStyle()); mBinding.control.reset.setText(ResUtil.getStringArray(R.array.select_reset)[Setting.getReset()]); } @Override public void setSubtitle(int size) { - getExo().getSubtitleView().setFixedTextSize(Dimension.SP, size); + mBinding.exo.getSubtitleView().setFixedTextSize(Dimension.SP, size); } private void setDecode() { @@ -397,7 +392,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List } private void setScale(int scale) { - getExo().setResizeMode(scale); + mBinding.exo.setResizeMode(scale); mBinding.control.scale.setText(ResUtil.getStringArray(R.array.select_scale)[scale]); } @@ -842,7 +837,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List private void onDecode() { mPlayers.toggleDecode(); - mPlayers.set(getExo()); + mPlayers.set(mBinding.exo); setDecode(); onRefresh(); } @@ -938,13 +933,13 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List ImgUtil.load(url, R.drawable.radio, new CustomTarget<>() { @Override public void onResourceReady(@NonNull Drawable resource, @Nullable Transition transition) { - getExo().setDefaultArtwork(resource); + mBinding.exo.setDefaultArtwork(resource); setMetadata(); } @Override public void onLoadFailed(@Nullable Drawable error) { - getExo().setDefaultArtwork(error); + mBinding.exo.setDefaultArtwork(error); hideProgress(); setMetadata(); } diff --git a/app/src/leanback/res/layout/activity_cast.xml b/app/src/leanback/res/layout/activity_cast.xml index c14f049f5..fc81e4a6b 100644 --- a/app/src/leanback/res/layout/activity_cast.xml +++ b/app/src/leanback/res/layout/activity_cast.xml @@ -8,20 +8,11 @@ android:keepScreenOn="true"> - - + app:surface_type="none" /> - - + app:surface_type="none" /> diff --git a/app/src/leanback/res/layout/activity_video.xml b/app/src/leanback/res/layout/activity_video.xml index ef5b93241..2948e9e58 100644 --- a/app/src/leanback/res/layout/activity_video.xml +++ b/app/src/leanback/res/layout/activity_video.xml @@ -22,20 +22,11 @@ android:nextFocusDown="@id/flag"> - - + app:surface_type="none" /> () { @Override public void onResourceReady(@NonNull Drawable resource, @Nullable Transition transition) { - getExo().setDefaultArtwork(resource); + mBinding.exo.setDefaultArtwork(resource); setMetadata(); } @Override public void onLoadFailed(@Nullable Drawable error) { - getExo().setDefaultArtwork(error); + mBinding.exo.setDefaultArtwork(error); setMetadata(); } 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 51840d2ce..ccce922a5 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 @@ -34,7 +34,6 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import androidx.media3.common.C; import androidx.media3.common.Player; -import androidx.media3.ui.PlayerView; import androidx.recyclerview.widget.RecyclerView; import androidx.viewbinding.ViewBinding; @@ -233,10 +232,6 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo return mHistory != null && mHistory.getScale() != -1 ? mHistory.getScale() : Setting.getScale(); } - private PlayerView getExo() { - return Setting.getRender() == 0 ? mBinding.surface : mBinding.texture; - } - private boolean isReplay() { return Setting.getReset() == 1; } @@ -371,10 +366,10 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo } private void setVideoView() { - mPlayers.set(getExo()); - getExo().setVisibility(View.VISIBLE); - getExo().getSubtitleView().setFixedTextSize(Dimension.SP, 14); - getExo().getSubtitleView().setStyle(ExoUtil.getCaptionStyle()); + mPlayers.set(mBinding.exo); + mBinding.exo.setVisibility(View.VISIBLE); + mBinding.exo.getSubtitleView().setFixedTextSize(Dimension.SP, 14); + mBinding.exo.getSubtitleView().setStyle(ExoUtil.getCaptionStyle()); mBinding.control.action.decode.setText(mPlayers.getDecodeText()); mBinding.control.action.speed.setEnabled(mPlayers.canAdjustSpeed()); mBinding.control.action.reset.setText(ResUtil.getStringArray(R.array.select_reset)[Setting.getReset()]); @@ -385,7 +380,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo @Override public void setSubtitle(int size) { - getExo().getSubtitleView().setFixedTextSize(Dimension.SP, size); + mBinding.exo.getSubtitleView().setFixedTextSize(Dimension.SP, size); } private void setDecode() { @@ -393,7 +388,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo } private void setScale(int scale) { - getExo().setResizeMode(scale); + mBinding.exo.setResizeMode(scale); mBinding.control.action.scale.setText(ResUtil.getStringArray(R.array.select_scale)[scale]); } @@ -766,7 +761,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo private void onDecode() { mPlayers.toggleDecode(); - mPlayers.set(getExo()); + mPlayers.set(mBinding.exo); setR1Callback(); setDecode(); onRefresh(); @@ -941,13 +936,13 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo ImgUtil.load(url, R.drawable.radio, new CustomTarget<>() { @Override public void onResourceReady(@NonNull Drawable resource, @Nullable Transition transition) { - getExo().setDefaultArtwork(resource); + mBinding.exo.setDefaultArtwork(resource); setMetadata(); } @Override public void onLoadFailed(@Nullable Drawable error) { - getExo().setDefaultArtwork(error); + mBinding.exo.setDefaultArtwork(error); hideProgress(); setMetadata(); } diff --git a/app/src/mobile/res/layout-sw600dp/activity_video.xml b/app/src/mobile/res/layout-sw600dp/activity_video.xml index 2a6b65e9c..9d6afbb79 100644 --- a/app/src/mobile/res/layout-sw600dp/activity_video.xml +++ b/app/src/mobile/res/layout-sw600dp/activity_video.xml @@ -22,20 +22,11 @@ android:focusable="true"> - - + app:surface_type="none" /> - - + app:surface_type="none" /> diff --git a/app/src/mobile/res/layout/activity_video.xml b/app/src/mobile/res/layout/activity_video.xml index 33b164671..ce87d0d0c 100644 --- a/app/src/mobile/res/layout/activity_video.xml +++ b/app/src/mobile/res/layout/activity_video.xml @@ -15,20 +15,11 @@ android:focusable="true"> - - + app:surface_type="none" />