danmu sync setting

pull/255/head
okjack 2 years ago
parent 5eed15ee32
commit 0bc684d121
  1. 8
      app/src/main/java/com/fongmi/android/tv/Setting.java
  2. 5
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  3. 1
      app/src/main/res/values-zh-rCN/strings.xml
  4. 1
      app/src/main/res/values-zh-rTW/strings.xml
  5. 1
      app/src/main/res/values/strings.xml
  6. 13
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java
  7. 29
      app/src/mobile/res/layout/fragment_setting_custom.xml

@ -285,6 +285,14 @@ public class Setting {
return Math.min(Math.max(Prefers.getInt("danmu_alpha", 90), 10), 100);
}
public static void putDanmuSync(boolean sync) {
Prefers.put("danmu_sync", sync);
}
public static boolean isDanmuSync() {
return Prefers.getBoolean("danmu_sync", false);
}
public static void putDanmuAlpha(int alpha) {
Prefers.put("danmu_alpha", alpha);
}

@ -85,6 +85,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
private int player;
private int error;
private int retry;
private boolean danmuSync;
public static boolean isExo(int type) {
return type == EXO;
@ -108,6 +109,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
builder = new StringBuilder();
runnable = ErrorEvent::timeout;
formatter = new Formatter(builder, Locale.getDefault());
danmuSync = Setting.isDanmuSync();
createSession(activity);
return this;
}
@ -675,7 +677,8 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic
@Override
public void updateTimer(DanmakuTimer timer) {
if (speed != 1) timer.add((long) (timer.lastInterval() * (speed - 1)));
if (danmuSync) App.post(() -> timer.update(getPosition()));
else if (speed != 1) timer.add((long) (timer.lastInterval() * (speed - 1)));
}
@Override

@ -93,6 +93,7 @@
<string name="player_danmu_size">弹幕大小</string>
<string name="player_danmu_line">弹幕行数</string>
<string name="player_danmu_alpha">弹幕透明</string>
<string name="player_danmu_sync">弹幕同步</string>
<string name="player_background">后台播放</string>
<string name="player_flag">线路播放</string>
<string name="player_episode">选集样式</string>

@ -93,6 +93,7 @@
<string name="player_danmu_size">彈幕大小</string>
<string name="player_danmu_line">彈幕行數</string>
<string name="player_danmu_alpha">彈幕透明</string>
<string name="player_danmu_sync">彈幕同步</string>
<string name="player_background">背景播放</string>
<string name="player_flag">線路播放</string>
<string name="player_episode">選集樣式</string>

@ -93,6 +93,7 @@
<string name="player_danmu_size">Danmu size</string>
<string name="player_danmu_line">Danmu line</string>
<string name="player_danmu_alpha">Danmu alpha</string>
<string name="player_danmu_sync">Danmu sync</string>
<string name="player_background">Background play</string>
<string name="player_flag">Flag play</string>
<string name="player_episode">Episode style</string>

@ -37,11 +37,19 @@ public class SettingCustomFragment extends BaseFragment {
@Override
protected void initView() {
mBinding.sizeText.setText((size = ResUtil.getStringArray(R.array.select_size))[Setting.getSize()]);
mBinding.danmuSyncText.setText(getSwitch(Setting.isDanmuSync()));
}
@Override
protected void initEvent() {
mBinding.title.setOnLongClickListener(this::onTitle);
mBinding.size.setOnClickListener(this::setSize);
mBinding.danmuSync.setOnClickListener(this::setDanmuSync);
}
private boolean onTitle(View view) {
mBinding.danmuSync.setVisibility(View.VISIBLE);
return true;
}
private void setSize(View view) {
@ -53,5 +61,10 @@ public class SettingCustomFragment extends BaseFragment {
}).show();
}
private void setDanmuSync(View view) {
Setting.putDanmuSync(!Setting.isDanmuSync());
mBinding.danmuSyncText.setText(getSwitch(Setting.isDanmuSync()));
}
}

@ -14,6 +14,7 @@
app:liftOnScrollColor="@color/transparent">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
@ -70,6 +71,34 @@
</LinearLayout>
<LinearLayout
android:id="@+id/danmuSync"
android:visibility="gone"
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_danmu_sync"
android:textColor="@color/white"
android:textSize="16sp" />
<TextView
android:id="@+id/danmuSyncText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="開" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
Loading…
Cancel
Save