Add video prefer setting

pull/590/head
FongMi 10 months ago
parent d1d16ca945
commit 4f8a501025
  1. 7
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingPlayerActivity.java
  2. 29
      app/src/leanback/res/layout/activity_setting_player.xml
  3. 8
      app/src/main/java/com/fongmi/android/tv/Setting.java
  4. 2
      app/src/main/java/com/fongmi/android/tv/player/exo/ExoUtil.java
  5. 1
      app/src/main/res/values-zh-rCN/strings.xml
  6. 1
      app/src/main/res/values-zh-rTW/strings.xml
  7. 1
      app/src/main/res/values/strings.xml
  8. 7
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java
  9. 27
      app/src/mobile/res/layout/fragment_setting_player.xml

@ -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()));

@ -234,6 +234,35 @@
</LinearLayout>
<LinearLayout
android:id="@+id/videoDecode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/selector_item"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/player_video_decode"
android:textColor="@color/white"
android:textSize="18sp" />
<TextView
android:id="@+id/videoDecodeText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="18sp"
tools:text="關" />
</LinearLayout>
<LinearLayout
android:id="@+id/aac"
android:layout_width="match_parent"

@ -225,6 +225,14 @@ public class Setting {
Prefers.put("audio_prefer", audioPrefer);
}
public static boolean isVideoPrefer() {
return Prefers.getBoolean("video_prefer");
}
public static void putVideoPrefer(boolean videoPrefer) {
Prefers.put("video_prefer", videoPrefer);
}
public static boolean isPreferAAC() {
return Prefers.getBoolean("prefer_aac");
}

@ -59,7 +59,7 @@ public class ExoUtil {
}
public static RenderersFactory buildRenderersFactory(int renderMode) {
return new NextRenderersFactory(App.get()).setAudioPrefer(Setting.isAudioPrefer()).setEnableDecoderFallback(true).setExtensionRendererMode(renderMode);
return new NextRenderersFactory(App.get()).setAudioPrefer(Setting.isAudioPrefer()).setVideoPrefer(Setting.isVideoPrefer()).setEnableDecoderFallback(true).setExtensionRendererMode(renderMode);
}
public static MediaSource.Factory buildMediaSourceFactory() {

@ -99,6 +99,7 @@
<string name="player_caption">字幕样式</string>
<string name="player_background">后台播放</string>
<string name="player_audio_decode">音频软解</string>
<string name="player_video_decode">视频软解</string>
<string name="player_aac_track">AAC优先</string>
<string name="player_danmaku_load">弹幕加载</string>
<string name="player_tunnel">隧道模式</string>

@ -99,6 +99,7 @@
<string name="player_caption">字幕樣式</string>
<string name="player_background">背景播放</string>
<string name="player_audio_decode">音訊軟解</string>
<string name="player_video_decode">視訊軟解</string>
<string name="player_aac_track">AAC優先</string>
<string name="player_danmaku_load">彈幕載入</string>
<string name="player_tunnel">隧道模式</string>

@ -100,6 +100,7 @@
<string name="player_caption">Caption style</string>
<string name="player_background">Background play</string>
<string name="player_audio_decode">Audio software decode</string>
<string name="player_video_decode">Video software decode</string>
<string name="player_aac_track">Prefer aac track</string>
<string name="player_danmaku_load">Danmaku load</string>
<string name="player_tunnel">Tunnel mode</string>

@ -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()));

@ -249,6 +249,33 @@
</LinearLayout>
<LinearLayout
android:id="@+id/videoDecode"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/shape_item"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/player_video_decode"
android:textColor="@color/white"
android:textSize="16sp" />
<TextView
android:id="@+id/videoDecodeText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="開" />
</LinearLayout>
<LinearLayout
android:id="@+id/aac"
android:layout_width="match_parent"

Loading…
Cancel
Save