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 2eaa3e888..6b2633b9a 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.danmakuLoadText.setText(getSwitch(Setting.isDanmakuLoad()));
mBinding.rtspText.setText((rtsp = ResUtil.getStringArray(R.array.select_rtsp))[Setting.getRtsp()]);
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.danmakuLoad.setOnClickListener(this::setDanmakuLoad);
}
private void setVisible() {
@@ -150,6 +152,11 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
mBinding.audioDecodeText.setText(getSwitch(Setting.isAudioPrefer()));
}
+ private void setDanmakuLoad(View view) {
+ Setting.putDanmakuLoad(!Setting.isDanmakuLoad());
+ mBinding.danmakuLoadText.setText(getSwitch(Setting.isDanmakuLoad()));
+ }
+
private void onBackground(View view) {
Setting.putBackground(Setting.isBackgroundOn() ? 0 : 1);
mBinding.backgroundText.setText(getSwitch(Setting.isBackgroundOn()));
diff --git a/app/src/leanback/res/layout/activity_setting_player.xml b/app/src/leanback/res/layout/activity_setting_player.xml
index 500f098b8..b14a26884 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 @@
+
+
+
+
+
+
+
+
字幕样式
后台播放
音频软解
+ 弹幕加载
隧道模式
缓冲时间
长按倍速
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 2d328fe83..d6ee97b41 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -92,6 +92,7 @@
字幕樣式
背景播放
音訊軟解
+ 彈幕載入
隧道模式
緩衝時間
長按倍速
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 392540e4c..ec667c38d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -93,6 +93,7 @@
Caption style
Background play
Audio software decode
+ Danmaku load
Tunnel mode
Buffer time
Press speed
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 6680742b1..c662e2c4b 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
@@ -558,7 +558,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private void checkDanmaku(String url) {
mBinding.danmaku.release();
- mBinding.danmaku.setVisibility(url.isEmpty() ? View.GONE : View.VISIBLE);
+ mBinding.danmaku.setVisibility(mPiP.isInMode(this) || url.isEmpty() ? View.GONE : View.VISIBLE);
if (!url.isEmpty()) App.execute(() -> mBinding.danmaku.prepare(new Parser(url), mDanmakuContext));
}
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 06200bacf..7146b4bd3 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.danmakuLoadText.setText(getSwitch(Setting.isDanmakuLoad()));
mBinding.caption.setVisibility(Setting.hasCaption() ? View.VISIBLE : View.GONE);
mBinding.rtspText.setText((rtsp = ResUtil.getStringArray(R.array.select_rtsp))[Setting.getRtsp()]);
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.danmakuLoad.setOnClickListener(this::setDanmakuLoad);
}
private void onUa(View view) {
@@ -159,6 +161,11 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
mBinding.audioDecodeText.setText(getSwitch(Setting.isAudioPrefer()));
}
+ private void setDanmakuLoad(View view) {
+ Setting.putDanmakuLoad(!Setting.isDanmakuLoad());
+ mBinding.danmakuLoadText.setText(getSwitch(Setting.isDanmakuLoad()));
+ }
+
@Override
public void onHiddenChanged(boolean hidden) {
if (!hidden) initView();
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 365869627..869512365 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
@@ -46,6 +46,10 @@ public class PiP {
this.builder = new PictureInPictureParams.Builder();
}
+ public boolean isInMode(Activity activity) {
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && activity.isInPictureInPictureMode();
+ }
+
public void update(Activity activity, View view) {
if (noPiP()) return;
Rect sourceRectHint = new Rect();
diff --git a/app/src/mobile/res/layout/fragment_setting_player.xml b/app/src/mobile/res/layout/fragment_setting_player.xml
index 72bd7ad0e..e78a558d5 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 @@
+
+
+
+
+
+
+
+