[mobile] support speed

pull/123/head
FongMi 3 years ago
parent 291e0ed280
commit 99d35b8a4d
  1. 25
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 25
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomKeyDownVod.java

@ -96,6 +96,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private Runnable mR1;
private Runnable mR2;
private Runnable mR3;
private Runnable mR4;
public static void push(Activity activity, String url) {
start(activity, "push_agent", url, url);
@ -193,6 +194,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mR1 = this::hideControl;
mR2 = this::setTraffic;
mR3 = this::setOrient;
mR4 = this::showTime;
mSiteKey = getKey();
setRecyclerView();
setVideoView();
@ -623,6 +625,11 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mBinding.widget.error.setVisibility(View.GONE);
}
private void showTime() {
mBinding.widget.position.setText(mPlayers.getPositionTime(0));
App.post(mR4, 200);
}
private void showState(int resId) {
showState(resId, 0);
}
@ -980,6 +987,22 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
adapter.notifyItemRangeChanged(0, adapter.getItemCount());
}
@Override
public void onSpeedUp() {
if (isLock()) return;
mPlayers.setSpeed(3.0f);
showState(R.drawable.ic_widget_forward);
showTime();
}
@Override
public void onSpeedReset() {
if (isLock()) return;
mPlayers.setSpeed(1.0f);
App.removeCallbacks(mR4);
hideState();
}
@Override
public void onSeeking(int time) {
if (isLock()) return;
@ -1081,6 +1104,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
protected void onDestroy() {
super.onDestroy();
mPlayers.release();
App.removeCallbacks(mR1, mR2, mR3);
App.removeCallbacks(mR1, mR2, mR3, mR4);
}
}

@ -16,6 +16,7 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
private final Listener listener;
private Runnable runnable;
private boolean touch;
private boolean speed;
private boolean seek;
private int time;
@ -29,7 +30,8 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
}
public boolean onTouchEvent(MotionEvent e) {
if (seek && e.getAction() == MotionEvent.ACTION_UP) seekDone();
if (seek && e.getAction() == MotionEvent.ACTION_UP) seekTo();
if (speed && e.getAction() == MotionEvent.ACTION_UP) listener.onSpeedReset();
return detector.onTouchEvent(e);
}
@ -39,6 +41,7 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
float downX = e.getX() > width ? width : e.getX();
float edgeX = Math.abs(downX - width);
touch = e.getX() > 100 && edgeX > 0;
speed = false;
seek = false;
return true;
}
@ -46,11 +49,10 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
@Override
public void onLongPress(@NonNull MotionEvent e) {
int base = ResUtil.getScreenWidthPx() / 3;
boolean left = e.getX() > 0 && e.getX() < base;
boolean right = e.getX() > base * 2 && e.getX() < base * 3;
if (left) App.post(runnable = this::subTime, 0);
if (right) App.post(runnable = this::addTime, 0);
seek = left || right;
seek = e.getX() > 0 && e.getX() < base;
speed = e.getX() > base * 2 && e.getX() < base * 3;
if (seek) App.post(runnable = this::subTime, 0);
if (speed) listener.onSpeedUp();
}
@Override
@ -78,11 +80,6 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
return true;
}
private void addTime() {
listener.onSeeking(time = time + Constant.INTERVAL_SEEK);
App.post(runnable, getDelay());
}
private void subTime() {
listener.onSeeking(time = time - Constant.INTERVAL_SEEK);
App.post(runnable, getDelay());
@ -95,7 +92,7 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
else return 50;
}
private void seekDone() {
private void seekTo() {
App.removeCallbacks(runnable);
listener.onSeekTo(time);
seek = false;
@ -104,6 +101,10 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
public interface Listener {
void onSpeedUp();
void onSpeedReset();
void onSeeking(int time);
void onSeekTo(int time);

Loading…
Cancel
Save