From ac37b135f29699eb9a0171e43d98e2d67b26f4a6 Mon Sep 17 00:00:00 2001 From: jun <215613905@qq.com> Date: Fri, 21 Mar 2025 20:43:18 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=A5=E6=8E=A7=E9=95=BF=E6=8C=89=E4=B8=8A?= =?UTF-8?q?=E9=94=AE=E5=80=8D=E9=80=9F=E6=92=AD=E6=94=BE;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../osc/player/controller/VodController.java | 62 +++++++++++++------ .../tvbox/osc/ui/activity/PlayActivity.java | 6 +- .../tvbox/osc/ui/fragment/PlayFragment.java | 6 +- .../main/res/drawable/bg_speed_indicator.xml | 9 +++ .../res/layout/player_vod_control_view.xml | 19 ++++++ gradle.properties | 2 +- 6 files changed, 78 insertions(+), 26 deletions(-) create mode 100644 app/src/main/res/drawable/bg_speed_indicator.xml 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 1935e762..bcefff7b 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 @@ -962,7 +962,7 @@ public class VodController extends BaseController { return true; } // } else if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { return true;// 闲置开启计时关闭透明底栏 - } else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN || keyCode == KeyEvent.KEYCODE_DPAD_UP || keyCode== KeyEvent.KEYCODE_MENU) { + } else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN || keyCode== KeyEvent.KEYCODE_MENU) { if (!isBottomVisible()) { showBottom(); myHandle.postDelayed(myRunnable, myHandleSeconds); @@ -983,13 +983,26 @@ public class VodController extends BaseController { private boolean fromLongPress; private float speed_old = 1.0f; - @Override - public void onLongPress(MotionEvent e) { - if (videoPlayState!=VideoView.STATE_PAUSED) { - fromLongPress = true; + + private void speedPlayStart(){ + fromLongPress = true; + try { + speed_old = (float) mPlayerConfig.getDouble("sp"); + float speed = 3.0f; + mPlayerConfig.put("sp", speed); + updatePlayerCfgView(); + listener.updatePlayerCfg(); + mControlWrapper.setSpeed(speed); + findViewById(R.id.play_speed_3_container).setVisibility(View.VISIBLE); + } catch (JSONException f) { + f.printStackTrace(); + } + } + private void speedPlayEnd(){ + if (fromLongPress) { + fromLongPress =false; try { - speed_old = (float) mPlayerConfig.getDouble("sp"); - float speed = 3.0f; + float speed = speed_old; mPlayerConfig.put("sp", speed); updatePlayerCfgView(); listener.updatePlayerCfg(); @@ -997,6 +1010,13 @@ public class VodController extends BaseController { } catch (JSONException f) { f.printStackTrace(); } + findViewById(R.id.play_speed_3_container).setVisibility(View.GONE); + } + } + @Override + public void onLongPress(MotionEvent e) { + if (videoPlayState!=VideoView.STATE_PAUSED) { + speedPlayStart(); } } @@ -1004,22 +1024,26 @@ public class VodController extends BaseController { @Override public boolean onTouchEvent(MotionEvent e) { if (e.getAction() == MotionEvent.ACTION_UP) { - if (fromLongPress) { - fromLongPress =false; - try { - float speed = speed_old; - mPlayerConfig.put("sp", speed); - updatePlayerCfgView(); - listener.updatePlayerCfg(); - mControlWrapper.setSpeed(speed); - } catch (JSONException f) { - f.printStackTrace(); - } - } + speedPlayEnd(); } return super.onTouchEvent(e); } + public boolean onKeyDown(int keyCode, KeyEvent event) { + if ((keyCode == KeyEvent.KEYCODE_DPAD_UP) && event.getRepeatCount() == 0) { + speedPlayStart(); + } + return super.onKeyDown(keyCode, event); + } + + @Override + public boolean onKeyUp(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_DPAD_UP) { + speedPlayEnd(); + } + return super.onKeyUp(keyCode, event); + } + @Override public boolean onSingleTapConfirmed(MotionEvent e) { myHandle.removeCallbacks(myRunnable); diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java index 6a9cdf15..f0ceb4ee 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java @@ -1536,15 +1536,15 @@ public class PlayActivity extends BaseActivity { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view,url); - String click=sourceBean.getClickSelector(); + String click=sourceBean.getClickSelector().trim(); LOG.i("echo-onPageFinished url:" + url); if(!click.isEmpty()){ String selector; - if(click.contains(";")){ + if(click.contains(";") && !click.endsWith(";")){ if(!url.contains(click.split(";")[0]))return; selector=click.split(";")[1]; }else { - selector=click.trim(); + selector=click; } String js = selector; if(!selector.contains("click()"))js+=".click();"; diff --git a/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java b/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java index f2350615..95441a12 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java @@ -1586,11 +1586,11 @@ public class PlayFragment extends BaseLazyFragment { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); - String clickSelector = sourceBean.getClickSelector(); + String clickSelector = sourceBean.getClickSelector().trim(); LOG.i("echo-onPageFinished url:" + url); - if (clickSelector != null && !clickSelector.trim().isEmpty()) { + if (!clickSelector.isEmpty()) { String selector; - if (clickSelector.contains(";")) { + if (clickSelector.contains(";") && !clickSelector.endsWith(";")) { String[] parts = clickSelector.split(";", 2); if (!url.contains(parts[0])) { return; diff --git a/app/src/main/res/drawable/bg_speed_indicator.xml b/app/src/main/res/drawable/bg_speed_indicator.xml new file mode 100644 index 00000000..d24fb787 --- /dev/null +++ b/app/src/main/res/drawable/bg_speed_indicator.xml @@ -0,0 +1,9 @@ + + + + + diff --git a/app/src/main/res/layout/player_vod_control_view.xml b/app/src/main/res/layout/player_vod_control_view.xml index f2dab740..e69296a1 100644 --- a/app/src/main/res/layout/player_vod_control_view.xml +++ b/app/src/main/res/layout/player_vod_control_view.xml @@ -649,4 +649,23 @@ android:src="@drawable/icon_unlock" android:visibility="invisible" /> + + + + + diff --git a/gradle.properties b/gradle.properties index e86424f0..8b1a2183 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,4 +17,4 @@ android.useAndroidX=true # Automatically convert third-party libraries to use AndroidX android.enableJetifier=true IsDebug=true -org.gradle.jvmargs=-Xmx2048m --add-opens java.base/java.io=ALL-UNNAMED +#org.gradle.jvmargs=-Xmx2048m --add-opens java.base/java.io=ALL-UNNAMED