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 168958544..09bd544f7 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
@@ -26,6 +26,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
private ActivitySettingPlayerBinding mBinding;
private String[] caption;
private String[] player;
+ private String[] decode;
private String[] render;
private String[] scale;
private String[] http;
@@ -56,6 +57,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
mBinding.httpText.setText((http = ResUtil.getStringArray(R.array.select_exo_http))[Setting.getHttp()]);
mBinding.scaleText.setText((scale = ResUtil.getStringArray(R.array.select_scale))[Setting.getScale()]);
mBinding.playerText.setText((player = ResUtil.getStringArray(R.array.select_player))[Setting.getPlayer()]);
+ mBinding.decodeText.setText((decode = ResUtil.getStringArray(R.array.select_decode))[Setting.getDecode(Setting.getPlayer())]);
mBinding.renderText.setText((render = ResUtil.getStringArray(R.array.select_render))[Setting.getRender()]);
mBinding.captionText.setText((caption = ResUtil.getStringArray(R.array.select_caption))[Setting.isCaption() ? 1 : 0]);
}
@@ -68,6 +70,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
mBinding.scale.setOnClickListener(this::setScale);
mBinding.buffer.setOnClickListener(this::onBuffer);
mBinding.player.setOnClickListener(this::setPlayer);
+ mBinding.decode.setOnClickListener(this::setDecode);
mBinding.render.setOnClickListener(this::setRender);
mBinding.tunnel.setOnClickListener(this::setTunnel);
mBinding.caption.setOnClickListener(this::setCaption);
@@ -125,9 +128,17 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
int index = Setting.getPlayer();
Setting.putPlayer(index = index == player.length - 1 ? 0 : ++index);
mBinding.playerText.setText(player[index]);
+ mBinding.decodeText.setText(decode[Setting.getDecode(index)]);
setVisible();
}
+ private void setDecode(View view) {
+ int player = Setting.getPlayer();
+ int index = Setting.getDecode(player);
+ Setting.putDecode(player, index = index == decode.length - 1 ? 0 : ++index);
+ mBinding.decodeText.setText(decode[index]);
+ }
+
private void setRender(View view) {
int index = Setting.getRender();
Setting.putRender(index = index == render.length - 1 ? 0 : ++index);
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 9fd750481..c59dcdc72 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
@@ -1001,6 +1001,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
private void onPlayer() {
mPlayers.togglePlayer();
setPlayerView();
+ setDecodeView();
onRefresh();
}
@@ -1364,6 +1365,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
private void nextPlayer() {
mPlayers.nextPlayer();
setPlayerView();
+ setDecodeView();
onRefresh();
}
diff --git a/app/src/leanback/res/layout/activity_setting_player.xml b/app/src/leanback/res/layout/activity_setting_player.xml
index 9f0289765..d3d53336e 100644
--- a/app/src/leanback/res/layout/activity_setting_player.xml
+++ b/app/src/leanback/res/layout/activity_setting_player.xml
@@ -41,6 +41,35 @@
+
+
+
+
+
+
+
+
0) builder.setSubtitleConfigurations(getSubtitles(subs));
if (drm != null) builder.setDrmConfiguration(drm.get());
- builder.setAllowChunklessPreparation(Players.isHard());
+ builder.setAllowChunklessPreparation(Players.isHard(Players.EXO));
if (mimeType != null) builder.setMimeType(mimeType);
builder.setAds(Sniffer.getRegex(uri));
return builder.build();
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 6e814c670..280b7cabc 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
@@ -81,7 +81,6 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
private long position;
private float speed;
- private int decode;
private int player;
private int error;
private int retry;
@@ -91,8 +90,8 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
return type == EXO;
}
- public static boolean isHard() {
- return Setting.getDecode() == HARD;
+ public static boolean isHard(int player) {
+ return Setting.getDecode(player) == HARD;
}
public boolean isExo() {
@@ -105,7 +104,6 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
public Players init(Activity activity) {
player = Setting.getPlayer();
- decode = Setting.getDecode();
builder = new StringBuilder();
runnable = ErrorEvent::timeout;
formatter = new Formatter(builder, Locale.getDefault());
@@ -142,7 +140,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
}
private void setupIjk(IjkVideoView view) {
- ijkPlayer = view.render(Setting.getRender()).decode(decode);
+ ijkPlayer = view.render(Setting.getRender()).decode(Setting.getDecode(IJK));
ijkPlayer.addListener(this);
ijkPlayer.setPlayer(player);
}
@@ -191,12 +189,12 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
this.player = player;
}
- public int getDecode() {
- return decode;
+ public int getDecode(int player) {
+ return Setting.getDecode(player);
}
- public void setDecode(int decode) {
- this.decode = decode;
+ public void setDecode(int player, int decode) {
+ Setting.putDecode(player, decode);
}
public void setPosition(long position) {
@@ -297,7 +295,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
}
public String getDecodeText() {
- return ResUtil.getStringArray(R.array.select_decode)[decode];
+ return ResUtil.getStringArray(R.array.select_decode)[Setting.getDecode(player)];
}
public String setSpeed(float speed) {
@@ -340,8 +338,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
}
public void toggleDecode() {
- setDecode(decode == HARD ? SOFT : HARD);
- Setting.putDecode(decode);
+ setDecode(player, getDecode(player) == HARD ? SOFT : HARD);
}
public String getPositionTime(long time) {
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index c3807b5c2..dcc2ddd79 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -92,6 +92,7 @@
播放核心
+ 解码方式
渲染方式
缩放比例
字幕样式
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 5bfc150f1..10115dc52 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 69fc8b3e7..dab3882ad 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -92,6 +92,7 @@
Player
+ Decode
Render
Scale
Caption style
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 0424313e1..4d602bc55 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
@@ -403,6 +403,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private void setDecodeView() {
mBinding.control.action.decode.setText(mPlayers.getDecodeText());
+ if (mControlDialog != null && mControlDialog.isVisible()) mControlDialog.updateDecode();
}
private void setVideoView() {
@@ -856,6 +857,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private void onPlayer() {
mPlayers.togglePlayer();
setPlayerView();
+ setDecodeView();
setR1Callback();
onRefresh();
}
@@ -1333,6 +1335,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
private void nextPlayer() {
mPlayers.nextPlayer();
setPlayerView();
+ setDecodeView();
onRefresh();
}
diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java
index 1cd97c713..0a582558b 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java
@@ -215,6 +215,10 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis
binding.player.setText(parent.control.action.player.getText());
}
+ public void updateDecode() {
+ binding.decode.setText(parent.control.action.decode.getText());
+ }
+
public void setParseVisible(boolean visible) {
binding.parse.setVisibility(visible ? View.VISIBLE : View.GONE);
binding.parseText.setVisibility(visible ? View.VISIBLE : View.GONE);
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 50ad38c77..cdae5eeee 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
@@ -31,6 +31,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
private String[] background;
private String[] caption;
private String[] player;
+ private String[] decode;
private String[] render;
private String[] scale;
private String[] http;
@@ -62,6 +63,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
mBinding.httpText.setText((http = ResUtil.getStringArray(R.array.select_exo_http))[Setting.getHttp()]);
mBinding.scaleText.setText((scale = ResUtil.getStringArray(R.array.select_scale))[Setting.getScale()]);
mBinding.playerText.setText((player = ResUtil.getStringArray(R.array.select_player))[Setting.getPlayer()]);
+ mBinding.decodeText.setText((decode = ResUtil.getStringArray(R.array.select_decode))[Setting.getDecode(Setting.getPlayer())]);
mBinding.renderText.setText((render = ResUtil.getStringArray(R.array.select_render))[Setting.getRender()]);
mBinding.captionText.setText((caption = ResUtil.getStringArray(R.array.select_caption))[Setting.isCaption() ? 1 : 0]);
mBinding.backgroundText.setText((background = ResUtil.getStringArray(R.array.select_background))[Setting.getBackground()]);
@@ -75,6 +77,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
mBinding.scale.setOnClickListener(this::onScale);
mBinding.buffer.setOnClickListener(this::onBuffer);
mBinding.player.setOnClickListener(this::setPlayer);
+ mBinding.decode.setOnClickListener(this::setDecode);
mBinding.render.setOnClickListener(this::setRender);
mBinding.tunnel.setOnClickListener(this::setTunnel);
mBinding.caption.setOnClickListener(this::setCaption);
@@ -136,9 +139,17 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
int index = Setting.getPlayer();
Setting.putPlayer(index = index == player.length - 1 ? 0 : ++index);
mBinding.playerText.setText(player[index]);
+ mBinding.decodeText.setText(decode[Setting.getDecode(index)]);
setVisible();
}
+ private void setDecode(View view) {
+ int player = Setting.getPlayer();
+ int index = Setting.getDecode(player);
+ Setting.putDecode(player, index = index == decode.length - 1 ? 0 : ++index);
+ mBinding.decodeText.setText(decode[index]);
+ }
+
private void setRender(View view) {
int index = Setting.getRender();
Setting.putRender(index = index == render.length - 1 ? 0 : ++index);
diff --git a/app/src/mobile/res/layout/fragment_setting_player.xml b/app/src/mobile/res/layout/fragment_setting_player.xml
index 7fe2e4fc1..257a4febb 100644
--- a/app/src/mobile/res/layout/fragment_setting_player.xml
+++ b/app/src/mobile/res/layout/fragment_setting_player.xml
@@ -71,6 +71,35 @@
+
+
+
+
+
+
+
+