From 832098837df6bff3774f5b6e50c51c9eb1ba5167 Mon Sep 17 00:00:00 2001 From: okjack Date: Wed, 31 Jul 2024 13:12:20 +0800 Subject: [PATCH] add handleAudioFocus switch --- .../java/com/fongmi/android/tv/Setting.java | 8 ++++++ .../com/fongmi/android/tv/player/Players.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 | 8 ++++++ .../res/layout/fragment_setting_player.xml | 27 +++++++++++++++++++ 7 files changed, 47 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/fongmi/android/tv/Setting.java b/app/src/main/java/com/fongmi/android/tv/Setting.java index 17105a442..b11d0e7bc 100644 --- a/app/src/main/java/com/fongmi/android/tv/Setting.java +++ b/app/src/main/java/com/fongmi/android/tv/Setting.java @@ -258,6 +258,14 @@ public class Setting { Prefers.put("update", update); } + public static boolean isPlayWithOthers() { + return Prefers.getBoolean("play_with_others", false); + } + + public static void putPlayWithOthers(boolean play) { + Prefers.put("play_with_others", play); + } + public static boolean isDanmu() { return Prefers.getBoolean("danmu"); } 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 fc52150f8..431e3e42d 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 @@ -149,7 +149,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, ParseCal private void initExo(PlayerView view) { exoPlayer = new ExoPlayer.Builder(App.get()).setLoadControl(ExoUtil.buildLoadControl()).setTrackSelector(ExoUtil.buildTrackSelector()).setRenderersFactory(ExoUtil.buildRenderersFactory(decode)).setMediaSourceFactory(ExoUtil.buildMediaSourceFactory()).build(); - exoPlayer.setAudioAttributes(AudioAttributes.DEFAULT, true); + exoPlayer.setAudioAttributes(AudioAttributes.DEFAULT, !Setting.isPlayWithOthers()); exoPlayer.addAnalyticsListener(new EventLogger()); exoPlayer.setHandleAudioBecomingNoisy(true); view.setRender(Setting.getRender()); diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 3559941c4..de725bbe1 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -112,6 +112,7 @@ 缩放比例 字幕样式 字幕大小 + 同时播放 弹幕加载 弹幕速度 弹幕大小 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 3675d3751..8f1b270e9 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -112,6 +112,7 @@ 縮放比例 字幕樣式 字幕大小 + 同时播放 彈幕載入 彈幕速度 彈幕大小 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9c4b2e099..d7dd4e4ec 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -113,6 +113,7 @@ Scale Caption style Subtitle size + Play with others Danmu load Danmu speed Danmu size 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 799b5c259..87e5460ee 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 @@ -58,6 +58,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B mBinding.captionText.setText(getSwitch(Setting.isCaption())); mBinding.bufferText.setText(String.valueOf(Setting.getBuffer())); mBinding.subtitleText.setText(String.valueOf(Setting.getSubtitle())); + mBinding.playWithOthersText.setText(getSwitch(Setting.isPlayWithOthers())); mBinding.danmuLoadText.setText(getSwitch(Setting.isDanmuLoad())); mBinding.rtspText.setText((rtsp = ResUtil.getStringArray(R.array.select_rtsp))[Setting.getRtsp()]); mBinding.flagText.setText((flag = ResUtil.getStringArray(R.array.select_flag))[Setting.getFlag()]); @@ -85,6 +86,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B mBinding.caption.setOnClickListener(this::setCaption); mBinding.subtitle.setOnClickListener(this::onSubtitle); mBinding.caption.setOnLongClickListener(this::onCaption); + mBinding.playWithOthers.setOnClickListener(this::setPlayWithOthers); mBinding.danmuLoad.setOnClickListener(this::setDanmuLoad); mBinding.background.setOnClickListener(this::onBackground); } @@ -94,6 +96,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B mBinding.http.setVisibility(Players.isExo(Setting.getPlayer()) ? View.VISIBLE : View.GONE); mBinding.buffer.setVisibility(Players.isExo(Setting.getPlayer()) ? View.VISIBLE : View.GONE); mBinding.tunnel.setVisibility(Players.isExo(Setting.getPlayer()) ? View.VISIBLE : View.GONE); + mBinding.playWithOthers.setVisibility(Players.isExo(Setting.getPlayer()) ? View.VISIBLE : View.GONE); } private void onUa(View view) { @@ -189,6 +192,11 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B mBinding.subtitleText.setText(String.valueOf(size)); } + private void setPlayWithOthers(View view) { + Setting.putPlayWithOthers(!Setting.isPlayWithOthers()); + mBinding.playWithOthersText.setText(getSwitch(Setting.isPlayWithOthers())); + } + private void setDanmuLoad(View view) { Setting.putDanmuLoad(!Setting.isDanmuLoad()); mBinding.danmuLoadText.setText(getSwitch(Setting.isDanmuLoad())); diff --git a/app/src/mobile/res/layout/fragment_setting_player.xml b/app/src/mobile/res/layout/fragment_setting_player.xml index 2aa330629..ca8ddb8eb 100644 --- a/app/src/mobile/res/layout/fragment_setting_player.xml +++ b/app/src/mobile/res/layout/fragment_setting_player.xml @@ -239,6 +239,33 @@ + + + + + + + +