From d87fcd29c48718c7e22c91d2509c9f65379ce3f5 Mon Sep 17 00:00:00 2001 From: XiaoRanLiu3119 Date: Thu, 14 Dec 2023 10:59:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=B3=E8=BF=87=E5=A4=B4=E5=B0=BE=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=B7=BB=E5=8A=A0'=E5=8A=A0=E5=87=8F=E7=A7=92?= =?UTF-8?q?=E8=B0=83=E6=95=B4',ref=20tk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../osc/player/controller/VodController.java | 31 +++++++++++++++ .../osc/ui/dialog/PlayingControlDialog.java | 23 +++++++++++ .../ui/dialog/PlayingControlRightDialog.java | 24 ++++++++++++ .../res/layout/dialog_playing_control.xml | 39 +++++++++++++++++-- 4 files changed, 113 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/github/tvbox/osc/player/controller/VodController.java b/app/src/main/java/com/github/tvbox/osc/player/controller/VodController.java index 7511d68e76..81ea3ceadc 100644 --- a/app/src/main/java/com/github/tvbox/osc/player/controller/VodController.java +++ b/app/src/main/java/com/github/tvbox/osc/player/controller/VodController.java @@ -1059,4 +1059,35 @@ public void hideSubtitle() { hideBottom(); Toast.makeText(getContext(), "字幕已关闭", Toast.LENGTH_SHORT).show(); } + + + public void increaseTime(String type) { + try { + int step = Hawk.get(HawkConfig.PLAY_TIME_STEP, 1); + int time = mPlayerConfig.getInt(type); + time += step; + if (time > 30 * 10) + time = 0; + mPlayerConfig.put(type, time); + updatePlayerCfgView(); + listener.updatePlayerCfg(); + } catch (JSONException e) { + e.printStackTrace(); + } + } + + public void decreaseTime(String type) { + try { + int step = Hawk.get(HawkConfig.PLAY_TIME_STEP, 1); + int time = mPlayerConfig.getInt(type); + time -= step; + if (time < 0) + time = (30 * 10); + mPlayerConfig.put(type, time); + updatePlayerCfgView(); + listener.updatePlayerCfg(); + } catch (JSONException e) { + e.printStackTrace(); + } + } } diff --git a/app/src/main/java/com/github/tvbox/osc/ui/dialog/PlayingControlDialog.java b/app/src/main/java/com/github/tvbox/osc/ui/dialog/PlayingControlDialog.java index 519ae0678e..3567cae87a 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/dialog/PlayingControlDialog.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/dialog/PlayingControlDialog.java @@ -68,6 +68,22 @@ private void initListener(){ mBinding.scale.setOnClickListener(view -> changeAndUpdateText(mBinding.scale,mController.mPlayerScaleBtn)); mBinding.playTimeStart.setOnClickListener(view -> changeAndUpdateText(mBinding.playTimeStart,mController.mPlayerTimeStartBtn)); mBinding.playTimeEnd.setOnClickListener(view -> changeAndUpdateText(mBinding.playTimeEnd,mController.mPlayerTimeSkipBtn)); + mBinding.increaseStart.setOnClickListener(view -> { + mController.increaseTime("st"); + updateSkipText(true); + }); + mBinding.decreaseStart.setOnClickListener(view -> { + mController.decreaseTime("st"); + updateSkipText(true); + }); + mBinding.increaseEnd.setOnClickListener(view -> { + mController.increaseTime("et"); + updateSkipText(false); + }); + mBinding.decreaseEnd.setOnClickListener(view -> { + mController.decreaseTime("et"); + updateSkipText(false); + }); mBinding.player.setOnClickListener(view -> changeAndUpdateText(mBinding.player,mController.mPlayerBtn)); mBinding.decode.setOnClickListener(view -> changeAndUpdateText(mBinding.decode,mController.mPlayerIJKBtn)); @@ -84,6 +100,13 @@ private void initListener(){ }); } + private void updateSkipText(boolean start){ + if (start){ + mBinding.playTimeStart.setText(mController.mPlayerTimeStartBtn.getText()); + }else { + mBinding.playTimeEnd.setText(mController.mPlayerTimeSkipBtn.getText()); + } + } /** * 点击直接调用controller里面声明好的点击事件,(不改动原逻辑,隐藏controller里的设置view,全由弹窗设置) * @param view 不为空变更配置文字,如更换播放器/缩放, 为空只操作点击之间,不需改变文字,如刷新/重播 diff --git a/app/src/main/java/com/github/tvbox/osc/ui/dialog/PlayingControlRightDialog.java b/app/src/main/java/com/github/tvbox/osc/ui/dialog/PlayingControlRightDialog.java index 695e7e1b01..94f60df23a 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/dialog/PlayingControlRightDialog.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/dialog/PlayingControlRightDialog.java @@ -72,6 +72,22 @@ private void initListener(){ mBinding.scale.setOnClickListener(view -> changeAndUpdateText(mBinding.scale,mController.mPlayerScaleBtn)); mBinding.playTimeStart.setOnClickListener(view -> changeAndUpdateText(mBinding.playTimeStart,mController.mPlayerTimeStartBtn)); mBinding.playTimeEnd.setOnClickListener(view -> changeAndUpdateText(mBinding.playTimeEnd,mController.mPlayerTimeSkipBtn)); + mBinding.increaseStart.setOnClickListener(view -> { + mController.increaseTime("st"); + updateSkipText(true); + }); + mBinding.decreaseStart.setOnClickListener(view -> { + mController.decreaseTime("st"); + updateSkipText(true); + }); + mBinding.increaseEnd.setOnClickListener(view -> { + mController.increaseTime("et"); + updateSkipText(false); + }); + mBinding.decreaseEnd.setOnClickListener(view -> { + mController.decreaseTime("et"); + updateSkipText(false); + }); mBinding.player.setOnClickListener(view -> changeAndUpdateText(mBinding.player,mController.mPlayerBtn)); mBinding.decode.setOnClickListener(view -> changeAndUpdateText(mBinding.decode,mController.mPlayerIJKBtn)); @@ -89,6 +105,14 @@ private void initListener(){ }); } + private void updateSkipText(boolean start){ + if (start){ + mBinding.playTimeStart.setText(mController.mPlayerTimeStartBtn.getText()); + }else { + mBinding.playTimeEnd.setText(mController.mPlayerTimeSkipBtn.getText()); + } + } + /** * 点击直接调用controller里面声明好的点击事件,(不改动原逻辑,隐藏controller里的设置view,全由弹窗设置) * @param view 不为空变更配置文字,如更换播放器/缩放, 为空只操作点击之间,不需改变文字,如刷新/重播 diff --git a/app/src/main/res/layout/dialog_playing_control.xml b/app/src/main/res/layout/dialog_playing_control.xml index cc95762d1d..292b9ff9f7 100644 --- a/app/src/main/res/layout/dialog_playing_control.xml +++ b/app/src/main/res/layout/dialog_playing_control.xml @@ -156,13 +156,21 @@ - + android:orientation="horizontal" + android:gravity="center_vertical"> + + + + +