遥控长按上键倍速播放;

pull/144/head
jun 1 year ago
parent 9a3871c9ce
commit ac37b135f2
  1. 62
      app/src/main/java/com/github/tvbox/osc/player/controller/VodController.java
  2. 6
      app/src/main/java/com/github/tvbox/osc/ui/activity/PlayActivity.java
  3. 6
      app/src/main/java/com/github/tvbox/osc/ui/fragment/PlayFragment.java
  4. 9
      app/src/main/res/drawable/bg_speed_indicator.xml
  5. 19
      app/src/main/res/layout/player_vod_control_view.xml
  6. 2
      gradle.properties

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

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

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

@ -0,0 +1,9 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#66000000" /> <!-- 半透明黑色背景 -->
<corners android:radius="12dp" /> <!-- 圆角 -->
<padding
android:left="8dp"
android:top="4dp"
android:right="8dp"
android:bottom="4dp" />
</shape>

@ -649,4 +649,23 @@
android:src="@drawable/icon_unlock"
android:visibility="invisible" />
<FrameLayout
android:id="@+id/play_speed_3_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/bg_speed_indicator"
android:visibility="gone"
android:padding="8dp">
<TextView
android:id="@+id/tv_speed_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3.0 X"
android:textColor="#FFFFFF"
android:textSize="18sp"
android:textStyle="bold" />
</FrameLayout>
</FrameLayout>

@ -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

Loading…
Cancel
Save