From eb1be1833053ab4e5f5b7b92715430920516da07 Mon Sep 17 00:00:00 2001 From: xiaowusky Date: Thu, 29 Jun 2023 09:58:13 +0800 Subject: [PATCH] =?UTF-8?q?desc:=E6=92=AD=E6=94=BE=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=8C=89=E9=94=AE=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../player/ProVideoActivity.java | 60 +++-- .../safetywatcher/player/ProVideoView.java | 107 -------- .../player/VideoControllerView.java | 53 +--- app/src/main/res/layout/activity_main_pro.xml | 7 - .../ijk/media/widget/media/IjkVideoView.java | 242 ------------------ 5 files changed, 46 insertions(+), 423 deletions(-) diff --git a/app/src/main/java/com/yinuo/safetywatcher/player/ProVideoActivity.java b/app/src/main/java/com/yinuo/safetywatcher/player/ProVideoActivity.java index 2f51808..8a647c7 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/player/ProVideoActivity.java +++ b/app/src/main/java/com/yinuo/safetywatcher/player/ProVideoActivity.java @@ -30,7 +30,7 @@ import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.GestureDetector; -import android.view.MotionEvent; +import android.view.KeyEvent; import android.view.View; import android.view.ViewConfiguration; import android.view.WindowManager; @@ -191,29 +191,45 @@ public class ProVideoActivity extends AppCompatActivity { mVideoView.start(); - GestureDetector.SimpleOnGestureListener listener = new GestureDetector.SimpleOnGestureListener() { - @Override - public boolean onSingleTapConfirmed(MotionEvent e) { - if (mVideoView.isInPlaybackState()) { - mVideoView.toggleMediaControlsVisiblity(); - return true; - } - - return true; - } - - @Override - public boolean onDoubleTap(MotionEvent e) { - return true; - } - }; - - detector = new GestureDetector(this, listener); +// GestureDetector.SimpleOnGestureListener listener = new GestureDetector.SimpleOnGestureListener() { +// @Override +// public boolean onSingleTapConfirmed(MotionEvent e) { +// if (mVideoView.isInPlaybackState()) { +// mVideoView.toggleMediaControlsVisiblity(); +// return true; +// } +// +// return true; +// } +// +// @Override +// public boolean onDoubleTap(MotionEvent e) { +// return true; +// } +// }; +// +// detector = new GestureDetector(this, listener); +// +// mVideoView.setOnTouchListener((v, event) -> { +// detector.onTouchEvent(event); +// return true; +// }); + } - mVideoView.setOnTouchListener((v, event) -> { - detector.onTouchEvent(event); + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { + mVideoView.toggleMediaControlsVisiblity(); return true; - }); + } else if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { + mediaController.rewindVideo(); + return true; + } else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { + mediaController.fastVideo(); + return true; + } else { + return super.onKeyDown(keyCode, event); + } } @Override diff --git a/app/src/main/java/com/yinuo/safetywatcher/player/ProVideoView.java b/app/src/main/java/com/yinuo/safetywatcher/player/ProVideoView.java index 51be15c..5333c17 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/player/ProVideoView.java +++ b/app/src/main/java/com/yinuo/safetywatcher/player/ProVideoView.java @@ -33,30 +33,9 @@ public class ProVideoView extends IjkVideoView implements VideoControllerView.Fu super(context, attrs, defStyleAttr, defStyleRes); } - /** - * ================ super override ================ - */ - - public void startRecord(String path, int seconds) { - } - - public void stopRecord() { - } - /** * ================ FullScreenAbleMediaPlayerControl ================ */ - - @Override - public boolean isFullScreen() { - if (getContext() instanceof ProVideoActivity) { - ProVideoActivity pro = (ProVideoActivity) getContext(); - return pro.isLandscape(); - } - - return false; - } - @Override public void toggleFullScreen() { if (getContext() instanceof ProVideoActivity) { @@ -64,90 +43,4 @@ public class ProVideoView extends IjkVideoView implements VideoControllerView.Fu pro.onChangeOrientation(null); } } - - @Override - public boolean recordEnable() { - Uri uri = null; - - if (uri == null) - return false; - - if (uri.getScheme() == null) - return false; - - return !uri.getScheme().equals("file"); - } - - @Override - public boolean speedCtrlEnable() { - Uri uri = null; - - if (uri == null) - return false; - - if (uri.getScheme() == null) - return true; - - return uri.getScheme().equals("file"); - } - - @Override - public boolean isRecording() { - if (mMediaPlayer == null) { - return false; - } - - return !TextUtils.isEmpty(mRecordPath); - } - - @Override - public void toggleRecord() { - } - - @Override - public float getSpeed() { - if (mMediaPlayer == null) { - return 1.0f; - } - - if (mMediaPlayer instanceof IjkMediaPlayer) { - IjkMediaPlayer player = (IjkMediaPlayer) mMediaPlayer; - return player.getSpeed(0f); - } - - return 1.0f; - } - - @Override - public void setSpeed(float speed) { - if (mMediaPlayer == null) { - return; - } - if (mMediaPlayer instanceof IjkMediaPlayer) { - IjkMediaPlayer player = (IjkMediaPlayer) mMediaPlayer; - player.setSpeed(speed); - } - } - - @Override - public void takePicture() { - } - - @Override - public void toggleMode() { - if (getContext() instanceof ProVideoActivity) { - ProVideoActivity pro = (ProVideoActivity) getContext(); - pro.onChangePlayMode(null); - } - } - - @Override - public boolean isCompleted() { -// if (mMediaPlayer instanceof IjkMediaPlayer) { -// IjkMediaPlayer player = (IjkMediaPlayer) mMediaPlayer; -// return player.isCompleted(); -// } - - return false; - } } diff --git a/app/src/main/java/com/yinuo/safetywatcher/player/VideoControllerView.java b/app/src/main/java/com/yinuo/safetywatcher/player/VideoControllerView.java index 3ccff6b..8796a37 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/player/VideoControllerView.java +++ b/app/src/main/java/com/yinuo/safetywatcher/player/VideoControllerView.java @@ -462,6 +462,14 @@ public class VideoControllerView extends FrameLayout implements IMediaController } } + public void fastVideo() { + mFastButton.performClick(); + } + + public void rewindVideo() { + mRewindButton.performClick(); + } + /* * 暂停/开始播放 * */ @@ -473,33 +481,8 @@ public class VideoControllerView extends FrameLayout implements IMediaController if (mPlayer.isPlaying()) { mPlayer.pause(); } else { - boolean isCompleted = false; - - if (this.mPlayer instanceof FullScreenAbleMediaPlayerControl) { - FullScreenAbleMediaPlayerControl mPlayer = (FullScreenAbleMediaPlayerControl) this.mPlayer; - isCompleted = mPlayer.isCompleted(); - } - mPlayer.start(); - - if (isCompleted) { - int duration = mPlayer.getDuration(); - final int progress = mProgress.getProgress(); - Log.d(TAG, String.valueOf(duration)); - - mSeekingPending = new Runnable() { - @Override - public void run() { - if (mPlayer != null) { - mPlayer.seekTo(progress); - } - } - }; - - postDelayed(mSeekingPending, 500); - } } - updatePausePlay(); } @@ -588,27 +571,7 @@ public class VideoControllerView extends FrameLayout implements IMediaController } public interface FullScreenAbleMediaPlayerControl extends MediaController.MediaPlayerControl { - boolean isFullScreen(); - void toggleFullScreen(); - - boolean recordEnable(); - - boolean speedCtrlEnable(); - - boolean isRecording(); - - void toggleRecord(); - - float getSpeed(); - - void setSpeed(float speed); - - void takePicture(); - - void toggleMode(); - - boolean isCompleted(); } private static class MessageHandler extends Handler { diff --git a/app/src/main/res/layout/activity_main_pro.xml b/app/src/main/res/layout/activity_main_pro.xml index c4ec8c9..b7881ee 100644 --- a/app/src/main/res/layout/activity_main_pro.xml +++ b/app/src/main/res/layout/activity_main_pro.xml @@ -12,13 +12,6 @@ android:layout_gravity="center" android:background="#000000"> - - 1 || sarDen > 1) { - sb.append("["); - sb.append(sarNum); - sb.append(":"); - sb.append(sarDen); - sb.append("]"); - } - - return sb.toString(); - } - - private String buildTimeMilli(long duration) { - long total_seconds = duration / 1000; - long hours = total_seconds / 3600; - long minutes = (total_seconds % 3600) / 60; - long seconds = total_seconds % 60; - if (duration <= 0) { - return "--:--"; - } - if (hours >= 100) { - return String.format(Locale.US, "%d:%02d:%02d", hours, minutes, seconds); - } else if (hours > 0) { - return String.format(Locale.US, "%02d:%02d:%02d", hours, minutes, seconds); - } else { - return String.format(Locale.US, "%02d:%02d", minutes, seconds); - } - } - - private String buildTrackType(int type) { -// Context context = getContext(); -// switch (type) { -// case ITrackInfo.MEDIA_TRACK_TYPE_VIDEO: -// return context.getString(R.string.TrackType_video); -// case ITrackInfo.MEDIA_TRACK_TYPE_AUDIO: -// return context.getString(R.string.TrackType_audio); -// case ITrackInfo.MEDIA_TRACK_TYPE_SUBTITLE: -// return context.getString(R.string.TrackType_subtitle); -// case ITrackInfo.MEDIA_TRACK_TYPE_TIMEDTEXT: -// return context.getString(R.string.TrackType_timedtext); -// case ITrackInfo.MEDIA_TRACK_TYPE_METADATA: -// return context.getString(R.string.TrackType_metadata); -// case ITrackInfo.MEDIA_TRACK_TYPE_UNKNOWN: -// default: -// return context.getString(R.string.TrackType_unknown); -// } - return "buildTrackType"; - } - - private String buildLanguage(String language) { - if (TextUtils.isEmpty(language)) - return "und"; - return language; - } - - public ITrackInfo[] getTrackInfo() { - if (mMediaPlayer == null) - return null; - - return mMediaPlayer.getTrackInfo(); - } - - public void selectTrack(int stream) { - MediaPlayerCompat.selectTrack(mMediaPlayer, stream); - } - - public void deselectTrack(int stream) { - MediaPlayerCompat.deselectTrack(mMediaPlayer, stream); - } - - public int getSelectedTrack(int trackType) { - return MediaPlayerCompat.getSelectedTrack(mMediaPlayer, trackType); - } }