From 67c49e54aadeeae80197d80bb97add095bf470b4 Mon Sep 17 00:00:00 2001 From: dueeeke Date: Tue, 10 Mar 2020 13:11:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=BB=91=E5=8A=A8=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E5=90=8EGestureView=E4=BE=9D=E6=97=A7=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/GestureVideoController.java | 41 ++++++++++++------- dkplayer-sample/src/main/AndroidManifest.xml | 6 +-- .../dkplayer/activity/api/PlayerActivity.java | 13 ++++++ .../src/main/res/layout/activity_player.xml | 24 +++++++++-- .../StandardVideoController.java | 2 + 5 files changed, 65 insertions(+), 21 deletions(-) diff --git a/dkplayer-java/src/main/java/com/dueeeke/videoplayer/controller/GestureVideoController.java b/dkplayer-java/src/main/java/com/dueeeke/videoplayer/controller/GestureVideoController.java index 6e1d505f..18d6f510 100644 --- a/dkplayer-java/src/main/java/com/dueeeke/videoplayer/controller/GestureVideoController.java +++ b/dkplayer-java/src/main/java/com/dueeeke/videoplayer/controller/GestureVideoController.java @@ -33,8 +33,7 @@ public abstract class GestureVideoController extends BaseVideoController impleme private boolean mIsGestureEnabled = true; private int mStreamVolume; private float mBrightness; - private int mPosition; - private boolean mNeedSeek; + private int mSeekPosition; private boolean mFirstTouch; private boolean mChangePosition; private boolean mChangeBrightness; @@ -228,8 +227,7 @@ protected void slideToChangePosition(float deltaX) { ((IGestureComponent) component).onPositionChange(position, currentPosition, duration); } } - mPosition = position; - mNeedSeek = true; + mSeekPosition = position; } protected void slideToChangeBrightness(float deltaY) { @@ -274,22 +272,35 @@ protected void slideToChangeVolume(float deltaY) { @Override public boolean onTouchEvent(MotionEvent event) { - boolean detectedUp = event.getAction() == MotionEvent.ACTION_UP; - if (!mGestureDetector.onTouchEvent(event) && detectedUp) { - for (Map.Entry next : mControlComponents.entrySet()) { - IControlComponent component = next.getKey(); - if (component instanceof IGestureComponent) { - ((IGestureComponent) component).onStopSlide(); - } - } - if (mNeedSeek) { - mControlWrapper.seekTo(mPosition); - mNeedSeek = false; + //滑动结束时事件处理 + if (!mGestureDetector.onTouchEvent(event)) { + int action = event.getAction(); + switch (action) { + case MotionEvent.ACTION_UP: + stopSlide(); + if (mSeekPosition > 0) { + mControlWrapper.seekTo(mSeekPosition); + mSeekPosition = 0; + } + break; + case MotionEvent.ACTION_CANCEL: + stopSlide(); + mSeekPosition = 0; + break; } } return super.onTouchEvent(event); } + private void stopSlide() { + for (Map.Entry next : mControlComponents.entrySet()) { + IControlComponent component = next.getKey(); + if (component instanceof IGestureComponent) { + ((IGestureComponent) component).onStopSlide(); + } + } + } + @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return false; diff --git a/dkplayer-sample/src/main/AndroidManifest.xml b/dkplayer-sample/src/main/AndroidManifest.xml index 35dc1e5d..ea156596 100644 --- a/dkplayer-sample/src/main/AndroidManifest.xml +++ b/dkplayer-sample/src/main/AndroidManifest.xml @@ -35,8 +35,7 @@ + android:screenOrientation="portrait"> @@ -50,7 +49,8 @@ + android:screenOrientation="portrait" + android:windowSoftInputMode="stateHidden"/> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintTop_toBottomOf="@id/player"> + + + + +