Add rtsp setting

pull/496/head
FongMi 2 years ago
parent 209e02c09e
commit 4db28969c4
  1. 9
      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. 1
      app/src/main/java/com/fongmi/android/tv/player/ExoUtil.java
  5. 6
      app/src/main/res/values-zh-rCN/strings.xml
  6. 6
      app/src/main/res/values-zh-rTW/strings.xml
  7. 6
      app/src/main/res/values/strings.xml
  8. 9
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingPlayerFragment.java
  9. 27
      app/src/mobile/res/layout/fragment_setting_player.xml

@ -25,6 +25,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
private String[] caption;
private String[] render;
private String[] scale;
private String[] rtsp;
public static void start(Activity activity) {
activity.startActivity(new Intent(activity, SettingPlayerActivity.class));
@ -47,6 +48,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
mBinding.tunnelText.setText(getSwitch(Setting.isTunnel()));
mBinding.bufferText.setText(String.valueOf(Setting.getBuffer()));
mBinding.subtitleText.setText(String.valueOf(Setting.getSubtitle()));
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()]);
mBinding.captionText.setText((caption = ResUtil.getStringArray(R.array.select_caption))[Setting.isCaption() ? 1 : 0]);
@ -55,6 +57,7 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
@Override
protected void initEvent() {
mBinding.ua.setOnClickListener(this::onUa);
mBinding.rtsp.setOnClickListener(this::setRtsp);
mBinding.scale.setOnClickListener(this::setScale);
mBinding.buffer.setOnClickListener(this::onBuffer);
mBinding.render.setOnClickListener(this::setRender);
@ -78,6 +81,12 @@ public class SettingPlayerActivity extends BaseActivity implements UaCallback, B
Setting.putUa(ua);
}
private void setRtsp(View view) {
int index = Setting.getRtsp();
Setting.putRtsp(index = index == rtsp.length - 1 ? 0 : ++index);
mBinding.rtspText.setText(rtsp[index]);
}
private void setScale(View view) {
int index = Setting.getScale();
Setting.putScale(index = index == scale.length - 1 ? 0 : ++index);

@ -196,6 +196,35 @@
</LinearLayout>
<LinearLayout
android:id="@+id/rtsp"
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_rtsp"
android:textColor="@color/white"
android:textSize="18sp" />
<TextView
android:id="@+id/rtspText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="18sp"
tools:text="UDP" />
</LinearLayout>
<LinearLayout
android:id="@+id/ua"
android:layout_width="match_parent"

@ -153,6 +153,14 @@ public class Setting {
Prefers.put("background", background);
}
public static int getRtsp() {
return Prefers.getInt("rtsp");
}
public static void putRtsp(int rtsp) {
Prefers.put("rtsp", rtsp);
}
public static int getSiteMode() {
return Prefers.getInt("site_mode");
}

@ -157,6 +157,7 @@ public class ExoUtil {
if (drm != null) builder.setDrmConfiguration(drm.get());
builder.setAllowChunklessPreparation(Players.isHard());
if (mimeType != null) builder.setMimeType(mimeType);
builder.setForceUseRtpTcp(Setting.getRtsp() == 1);
builder.setAds(Sniffer.getRegex(uri));
return builder.build();
}

@ -86,6 +86,7 @@
<string name="player_background">后台播放</string>
<string name="player_tunnel">隧道模式</string>
<string name="player_buffer">缓冲时间</string>
<string name="player_rtsp">RTSP 通道</string>
<string name="player_ua">User-Agent</string>
<!-- Search -->
@ -183,4 +184,9 @@
<item>选择字幕</item>
</string-array>
<string-array name="select_rtsp">
<item>UDP</item>
<item>TCP</item>
</string-array>
</resources>

@ -86,6 +86,7 @@
<string name="player_background">背景播放</string>
<string name="player_tunnel">隧道模式</string>
<string name="player_buffer">緩衝時間</string>
<string name="player_rtsp">RTSP 通道</string>
<string name="player_ua">User-Agent</string>
<!-- Search -->
@ -183,4 +184,9 @@
<item>選擇字幕</item>
</string-array>
<string-array name="select_rtsp">
<item>UDP</item>
<item>TCP</item>
</string-array>
</resources>

@ -86,6 +86,7 @@
<string name="player_background">Background play</string>
<string name="player_tunnel">Tunnel mode</string>
<string name="player_buffer">Buffer time</string>
<string name="player_rtsp">RTSP channel</string>
<string name="player_ua">User-Agent</string>
<!-- Search -->
@ -188,4 +189,9 @@
<item>Select subtitle track</item>
</string-array>
<string-array name="select_rtsp">
<item>UDP</item>
<item>TCP</item>
</string-array>
</resources>

@ -30,6 +30,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
private String[] caption;
private String[] render;
private String[] scale;
private String[] rtsp;
public static SettingPlayerFragment newInstance() {
return new SettingPlayerFragment();
@ -51,6 +52,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
mBinding.tunnelText.setText(getSwitch(Setting.isTunnel()));
mBinding.bufferText.setText(String.valueOf(Setting.getBuffer()));
mBinding.subtitleText.setText(String.valueOf(Setting.getSubtitle()));
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()]);
mBinding.captionText.setText((caption = ResUtil.getStringArray(R.array.select_caption))[Setting.isCaption() ? 1 : 0]);
@ -60,6 +62,7 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
@Override
protected void initEvent() {
mBinding.ua.setOnClickListener(this::onUa);
mBinding.rtsp.setOnClickListener(this::setRtsp);
mBinding.scale.setOnClickListener(this::onScale);
mBinding.buffer.setOnClickListener(this::onBuffer);
mBinding.render.setOnClickListener(this::setRender);
@ -84,6 +87,12 @@ public class SettingPlayerFragment extends BaseFragment implements UaCallback, B
Setting.putUa(ua);
}
private void setRtsp(View view) {
int index = Setting.getRtsp();
Setting.putRtsp(index = index == rtsp.length - 1 ? 0 : ++index);
mBinding.rtspText.setText(rtsp[index]);
}
private void onScale(View view) {
new MaterialAlertDialogBuilder(getActivity()).setTitle(R.string.player_scale).setNegativeButton(R.string.dialog_negative, null).setSingleChoiceItems(scale, Setting.getScale(), (dialog, which) -> {
mBinding.scaleText.setText(scale[which]);

@ -242,6 +242,33 @@
</LinearLayout>
<LinearLayout
android:id="@+id/rtsp"
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_rtsp"
android:textColor="@color/white"
android:textSize="16sp" />
<TextView
android:id="@+id/rtspText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="UDP" />
</LinearLayout>
<LinearLayout
android:id="@+id/ua"
android:layout_width="match_parent"

Loading…
Cancel
Save