From 4f8a501025eb8417ce53148c6503ec8a84e29f08 Mon Sep 17 00:00:00 2001 From: FongMi Date: Sun, 15 Jun 2025 21:12:10 +0800 Subject: [PATCH] Add video prefer setting --- .../tv/ui/activity/SettingPlayerActivity.java | 7 +++++ .../res/layout/activity_setting_player.xml | 29 +++++++++++++++++++ .../java/com/fongmi/android/tv/Setting.java | 8 +++++ .../fongmi/android/tv/player/exo/ExoUtil.java | 2 +- app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + .../tv/ui/fragment/SettingPlayerFragment.java | 7 +++++ .../res/layout/fragment_setting_player.xml | 27 +++++++++++++++++ 9 files changed, 82 insertions(+), 1 deletion(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java index 8e8d7648d..2e4af1f85 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java @@ -54,6 +54,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B mBinding.bufferText.setText(String.valueOf(Setting.getBuffer())); mBinding.backgroundText.setText(getSwitch(Setting.isBackgroundOn())); mBinding.audioDecodeText.setText(getSwitch(Setting.isAudioPrefer())); + mBinding.videoDecodeText.setText(getSwitch(Setting.isVideoPrefer())); mBinding.danmakuLoadText.setText(getSwitch(Setting.isDanmakuLoad())); mBinding.scaleText.setText((scale = ResUtil.getStringArray(R.array.select_scale))[Setting.getScale()]); mBinding.renderText.setText((render = ResUtil.getStringArray(R.array.select_render))[Setting.getRender()]); @@ -73,6 +74,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B mBinding.caption.setOnLongClickListener(this::onCaption); mBinding.background.setOnClickListener(this::onBackground); mBinding.audioDecode.setOnClickListener(this::setAudioDecode); + mBinding.videoDecode.setOnClickListener(this::setVideoDecode); mBinding.danmakuLoad.setOnClickListener(this::setDanmakuLoad); } @@ -150,6 +152,11 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B mBinding.audioDecodeText.setText(getSwitch(Setting.isAudioPrefer())); } + private void setVideoDecode(View view) { + Setting.putVideoPrefer(!Setting.isVideoPrefer()); + mBinding.videoDecodeText.setText(getSwitch(Setting.isVideoPrefer())); + } + private void setDanmakuLoad(View view) { Setting.putDanmakuLoad(!Setting.isDanmakuLoad()); mBinding.danmakuLoadText.setText(getSwitch(Setting.isDanmakuLoad())); diff --git a/app/src/leanback/res/layout/activity_setting_player.xml b/app/src/leanback/res/layout/activity_setting_player.xml index 9b796224a..3d99c3c58 100644 --- a/app/src/leanback/res/layout/activity_setting_player.xml +++ b/app/src/leanback/res/layout/activity_setting_player.xml @@ -234,6 +234,35 @@ + + + + + + + + 字幕样式 后台播放 音频软解 + 视频软解 AAC优先 弹幕加载 隧道模式 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 9a4bebf5a..29abfb190 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -99,6 +99,7 @@ 字幕樣式 背景播放 音訊軟解 + 視訊軟解 AAC優先 彈幕載入 隧道模式 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index de14f5299..44f936ac7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -100,6 +100,7 @@ Caption style Background play Audio software decode + Video software decode Prefer aac track Danmaku load Tunnel mode diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java index db5776fb7..be3511dd8 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java @@ -56,6 +56,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B mBinding.speedText.setText(format.format(Setting.getSpeed())); mBinding.bufferText.setText(String.valueOf(Setting.getBuffer())); mBinding.audioDecodeText.setText(getSwitch(Setting.isAudioPrefer())); + mBinding.videoDecodeText.setText(getSwitch(Setting.isVideoPrefer())); mBinding.danmakuLoadText.setText(getSwitch(Setting.isDanmakuLoad())); mBinding.caption.setVisibility(Setting.hasCaption() ? View.VISIBLE : View.GONE); mBinding.scaleText.setText((scale = ResUtil.getStringArray(R.array.select_scale))[Setting.getScale()]); @@ -77,6 +78,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B mBinding.caption.setOnLongClickListener(this::onCaption); mBinding.background.setOnClickListener(this::onBackground); mBinding.audioDecode.setOnClickListener(this::setAudioDecode); + mBinding.videoDecode.setOnClickListener(this::setVideoDecode); mBinding.danmakuLoad.setOnClickListener(this::setDanmakuLoad); } @@ -159,6 +161,11 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B mBinding.audioDecodeText.setText(getSwitch(Setting.isAudioPrefer())); } + private void setVideoDecode(View view) { + Setting.putVideoPrefer(!Setting.isVideoPrefer()); + mBinding.videoDecodeText.setText(getSwitch(Setting.isVideoPrefer())); + } + private void setDanmakuLoad(View view) { Setting.putDanmakuLoad(!Setting.isDanmakuLoad()); mBinding.danmakuLoadText.setText(getSwitch(Setting.isDanmakuLoad())); diff --git a/app/src/mobile/res/layout/fragment_setting_player.xml b/app/src/mobile/res/layout/fragment_setting_player.xml index 0c7a3ff34..dea287757 100644 --- a/app/src/mobile/res/layout/fragment_setting_player.xml +++ b/app/src/mobile/res/layout/fragment_setting_player.xml @@ -249,6 +249,33 @@ + + + + + + + +