diff --git a/README-ZH.md b/README-ZH.md index 2084b5bfe..711e52923 100644 --- a/README-ZH.md +++ b/README-ZH.md @@ -1,7 +1,7 @@ #节操视频播放器 [![Platform](https://img.shields.io/badge/platform-android-green.svg)](http://developer.android.com/index.html) -[![Maven Central](https://img.shields.io/badge/Maven%20Central-3.1-green.svg)](http://search.maven.org/#artifactdetails%7Cfm.jiecao%7Cjiecaovideoplayer%7C3.1%7Caar) +[![Maven Central](https://img.shields.io/badge/Maven%20Central-3.2-green.svg)](http://search.maven.org/#artifactdetails%7Cfm.jiecao%7Cjiecaovideoplayer%7C3.2%7Caar) [![Licenses](https://img.shields.io/badge/license-MIT-green.svg)](http://choosealicense.com/licenses/mit/) [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-jiecaovideoplayer-green.svg?style=true)](https://android-arsenal.com/details/1/3269) [![GitHub stars](https://img.shields.io/github/stars/lipangit/jiecaovideoplayer.svg?style=social&label=Star)]() @@ -21,7 +21,7 @@ ##效果 -**[jiecaovideoplayer-3.1-demo.apk](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.1-demo.apk)** +**[jiecaovideoplayer-3.2-demo.apk](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.2-demo.apk)** ![Demo Screenshot][1] @@ -30,14 +30,14 @@ ##使用 1.添加类库 ```gradle -compile 'fm.jiecao:jiecaovideoplayer:3.1' +compile 'fm.jiecao:jiecaovideoplayer:3.2' ``` 或直接下载 -* [jiecaovideoplayer-3.1.aar](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.1.aar) -* [jiecaovideoplayer-3.1-javadoc.jar](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.1-javadoc.jar) -* [jiecaovideoplayer-3.1-sources.jar](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.1-sources.jar) +* [jiecaovideoplayer-3.2.aar](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.2.aar) +* [jiecaovideoplayer-3.2-javadoc.jar](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.2-javadoc.jar) +* [jiecaovideoplayer-3.2-sources.jar](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.2-sources.jar) 2.添加布局 ```xml diff --git a/README.md b/README.md index 4d93b72c5..8d5a9c8ef 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # JieCao Video Player [![Platform](https://img.shields.io/badge/platform-android-green.svg)](http://developer.android.com/index.html) -[![Maven Central](https://img.shields.io/badge/Maven%20Central-3.1-green.svg)](http://search.maven.org/#artifactdetails%7Cfm.jiecao%7Cjiecaovideoplayer%7C3.1%7Caar) +[![Maven Central](https://img.shields.io/badge/Maven%20Central-3.2-green.svg)](http://search.maven.org/#artifactdetails%7Cfm.jiecao%7Cjiecaovideoplayer%7C3.2%7Caar) [![Licenses](https://img.shields.io/badge/license-MIT-green.svg)](http://choosealicense.com/licenses/mit/) [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-jiecaovideoplayer-green.svg?style=true)](https://android-arsenal.com/details/1/3269) [![GitHub stars](https://img.shields.io/github/stars/lipangit/jiecaovideoplayer.svg?style=social&label=Star)]() @@ -23,7 +23,7 @@ Android truly full-screen capabilities, the Android platform to become the most ## Effect -**[jiecaovideoplayer-3.1-demo.apk](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.1-demo.apk)** +**[jiecaovideoplayer-3.2-demo.apk](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.2-demo.apk)** ![Demo Screenshot][1] @@ -32,14 +32,14 @@ Demo video : http://v.youku.com/v_show/id_XMTQ2NzUwOTcyNA==.html ## Usage 1.Import library ```gradle -compile 'fm.jiecao:jiecaovideoplayer:3.1' +compile 'fm.jiecao:jiecaovideoplayer:3.2' ``` Or download lib -* [jiecaovideoplayer-3.1.aar](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.1.aar) -* [jiecaovideoplayer-3.1-javadoc.jar](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.1-javadoc.jar) -* [jiecaovideoplayer-3.1-sources.jar](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.1-sources.jar) +* [jiecaovideoplayer-3.2.aar](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.2.aar) +* [jiecaovideoplayer-3.2-javadoc.jar](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.2-javadoc.jar) +* [jiecaovideoplayer-3.2-sources.jar](https://raw.githubusercontent.com/lipangit/jiecaovideoplayer/develop/downloads/jiecaovideoplayer-3.2-sources.jar) 2.Add JCVideoPlayer in your layout ```xml diff --git a/app/build.gradle b/app/build.gradle index 2a3c5451c..e81fa1eb3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "fm.jiecao.jiecaovideoplayer" minSdkVersion 16 targetSdkVersion 23 - versionCode 23 - versionName "3.1" + versionCode 24 + versionName "3.2" } buildTypes { release { diff --git a/app/src/main/java/fm/jiecao/jiecaovideoplayer/View/JCVideoPlayerStandardFresco.java b/app/src/main/java/fm/jiecao/jiecaovideoplayer/View/JCVideoPlayerStandardFresco.java index afa0846ce..10141b66c 100644 --- a/app/src/main/java/fm/jiecao/jiecaovideoplayer/View/JCVideoPlayerStandardFresco.java +++ b/app/src/main/java/fm/jiecao/jiecaovideoplayer/View/JCVideoPlayerStandardFresco.java @@ -126,7 +126,7 @@ public void onClick(View v) { startDismissControlViewTimer(); } } else if (i == R.id.surface_container) { - if (jc_BuriedPointStandard != null && JCMediaManager.intance().listener == this) { + if (jc_BuriedPointStandard != null && JCMediaManager.instance().listener == this) { if (IF_CURRENT_IS_FULLSCREEN) { jc_BuriedPointStandard.onClickBlankFullscreen(url, objects); } else { diff --git a/app/src/main/res/layout/jc_layout_standard_fresco.xml b/app/src/main/res/layout/jc_layout_standard_fresco.xml index 32212ce74..a5b98f33f 100644 --- a/app/src/main/res/layout/jc_layout_standard_fresco.xml +++ b/app/src/main/res/layout/jc_layout_standard_fresco.xml @@ -4,17 +4,16 @@ android:layout_height="match_parent" android:background="@android:color/black"> + + - + + - mapHeadData, Object... objects) { - if (JCMediaManager.intance().listener == this && (System.currentTimeMillis() - CLICK_QUIT_FULLSCREEN_TIME) < FULL_SCREEN_NORMAL_DELAY) + if (JCMediaManager.instance().listener == this && (System.currentTimeMillis() - CLICK_QUIT_FULLSCREEN_TIME) < FULL_SCREEN_NORMAL_DELAY) return; setUp(url, objects); this.mapHeadData.clear(); @@ -154,8 +150,8 @@ protected void setStateAndUi(int state) { CURRENT_STATE = state; switch (CURRENT_STATE) { case CURRENT_STATE_NORMAL: - if (JCMediaManager.intance().listener == this) { - JCMediaManager.intance().mediaPlayer.release(); + if (JCMediaManager.instance().listener == this) { + JCMediaManager.instance().mediaPlayer.release(); } break; case CURRENT_STATE_PREPAREING: @@ -167,7 +163,7 @@ protected void setStateAndUi(int state) { startProgressTimer(); break; case CURRENT_STATE_ERROR: - JCMediaManager.intance().mediaPlayer.release(); + JCMediaManager.instance().mediaPlayer.release(); break; } } @@ -188,9 +184,9 @@ public void onClick(View v) { } prepareVideo(); } else if (CURRENT_STATE == CURRENT_STATE_PLAYING) { - JCMediaManager.intance().mediaPlayer.pause(); + JCMediaManager.instance().mediaPlayer.pause(); setStateAndUi(CURRENT_STATE_PAUSE); - if (JC_BURIED_POINT != null && JCMediaManager.intance().listener == this) { + if (JC_BURIED_POINT != null && JCMediaManager.instance().listener == this) { if (IF_CURRENT_IS_FULLSCREEN) { JC_BURIED_POINT.onClickStopFullscreen(url, objects); } else { @@ -198,14 +194,14 @@ public void onClick(View v) { } } } else if (CURRENT_STATE == CURRENT_STATE_PAUSE) { - if (JC_BURIED_POINT != null && JCMediaManager.intance().listener == this) { + if (JC_BURIED_POINT != null && JCMediaManager.instance().listener == this) { if (IF_CURRENT_IS_FULLSCREEN) { JC_BURIED_POINT.onClickResumeFullscreen(url, objects); } else { JC_BURIED_POINT.onClickResume(url, objects); } } - JCMediaManager.intance().mediaPlayer.start(); + JCMediaManager.instance().mediaPlayer.start(); setStateAndUi(CURRENT_STATE_PLAYING); } } else if (i == R.id.fullscreen) { @@ -213,13 +209,13 @@ public void onClick(View v) { //quit fullscreen backFullscreen(); } else { - if (JC_BURIED_POINT != null && JCMediaManager.intance().listener == this) { + if (JC_BURIED_POINT != null && JCMediaManager.instance().listener == this) { JC_BURIED_POINT.onEnterFullscreen(url, objects); } //to fullscreen - JCMediaManager.intance().mediaPlayer.setDisplay(null); - JCMediaManager.intance().lastListener = this; - JCMediaManager.intance().listener = null; + JCMediaManager.instance().mediaPlayer.setDisplay(null); + JCMediaManager.instance().lastListener = this; + JCMediaManager.instance().listener = null; IF_FULLSCREEN_FROM_NORMAL = true; IF_RELEASE_WHEN_ON_PAUSE = false; JCFullScreenActivity.toActivityFromNormal(getContext(), CURRENT_STATE, url, JCVideoPlayer.this.getClass(), this.objects); @@ -233,26 +229,23 @@ public void onClick(View v) { } protected void prepareVideo() { - if (JCMediaManager.intance().listener != null) { - JCMediaManager.intance().listener.onCompletion(); - } - JCMediaManager.intance().listener = this; -// addSurfaceView(); - JCMediaManager.intance().prepareToPlay(getContext(), url, mapHeadData); - if (!IF_CURRENT_IS_FULLSCREEN) { - setDisplayCaseFailse(); + if (JCMediaManager.instance().listener != null) { + JCMediaManager.instance().listener.onCompletion(); } + JCMediaManager.instance().listener = this; + addSurfaceView(); + JCMediaManager.instance().prepareToPlay(getContext(), url, mapHeadData); setStateAndUi(CURRENT_STATE_PREPAREING); } - private void addSurfaceView() { + public void addSurfaceView() { if (rlSurfaceContainer.getChildCount() > 0) { rlSurfaceContainer.removeAllViews(); } surfaceView = new JCResizeSurfaceView(getContext()); surfaceHolder = surfaceView.getHolder(); surfaceHolder.addCallback(this); -// surfaceView.setOnClickListener(this); + RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT); rlSurfaceContainer.addView(surfaceView, layoutParams); @@ -284,17 +277,15 @@ public boolean onTouch(View v, MotionEvent event) { if (!changePosition && !changeVolume) { if (absDeltaX > threshold || absDeltaY > threshold) { if (absDeltaX >= threshold) { - if (CURRENT_STATE == CURRENT_STATE_PLAYING || CURRENT_STATE == CURRENT_STATE_PAUSE) { - changePosition = true; - downPosition = JCMediaManager.intance().mediaPlayer.getCurrentPosition(); - if (JC_BURIED_POINT != null && JCMediaManager.intance().listener == this) { - JC_BURIED_POINT.onTouchScreenSeekPosition(url, objects); - } + changePosition = true; + downPosition = getCurrentPositionWhenPlaying(); + if (JC_BURIED_POINT != null && JCMediaManager.instance().listener == this) { + JC_BURIED_POINT.onTouchScreenSeekPosition(url, objects); } } else { changeVolume = true; downVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC); - if (JC_BURIED_POINT != null && JCMediaManager.intance().listener == this) { + if (JC_BURIED_POINT != null && JCMediaManager.instance().listener == this) { JC_BURIED_POINT.onTouchScreenSeekVolume(url, objects); } } @@ -318,16 +309,14 @@ public boolean onTouch(View v, MotionEvent event) { dlgVolume.dismiss(); } if (changePosition) { - JCMediaManager.intance().mediaPlayer.seekTo(resultTimePosition); - if (CURRENT_STATE == CURRENT_STATE_PLAYING || CURRENT_STATE == CURRENT_STATE_PAUSE) { - int duration = JCMediaManager.intance().mediaPlayer.getDuration(); - int progress = resultTimePosition * 100 / (duration == 0 ? 1 : duration); - skProgress.setProgress(progress); - } + JCMediaManager.instance().mediaPlayer.seekTo(resultTimePosition); + int duration = JCMediaManager.instance().mediaPlayer.getDuration(); + int progress = resultTimePosition * 100 / (duration == 0 ? 1 : duration); + skProgress.setProgress(progress); } ///////////////////// startProgressTimer(); - if (JC_BURIED_POINT != null && JCMediaManager.intance().listener == this) { + if (JC_BURIED_POINT != null && JCMediaManager.instance().listener == this) { if (IF_CURRENT_IS_FULLSCREEN) { JC_BURIED_POINT.onClickSeekbarFullscreen(url, objects); } else { @@ -381,13 +370,11 @@ private void showProgressDialog(float deltaX) { if (!dlgProgress.isShowing()) { dlgProgress.show(); } - if (CURRENT_STATE == CURRENT_STATE_PLAYING || CURRENT_STATE == CURRENT_STATE_PAUSE) { - int totalTime = JCMediaManager.intance().mediaPlayer.getDuration(); - resultTimePosition = (int) (downPosition + deltaX * totalTime / screenWidth); - dlgProgressCurrent.setText(JCUtils.stringForTime(resultTimePosition)); - dlgProgressTotal.setText(" / " + JCUtils.stringForTime(totalTime) + ""); - dlgProgressProgressBar.setProgress(resultTimePosition * 100 / totalTime); - } + int totalTime = JCMediaManager.instance().mediaPlayer.getDuration(); + resultTimePosition = (int) (downPosition + deltaX * totalTime / screenWidth); + dlgProgressCurrent.setText(JCUtils.stringForTime(resultTimePosition)); + dlgProgressTotal.setText(" / " + JCUtils.stringForTime(totalTime) + ""); + dlgProgressProgressBar.setProgress(resultTimePosition * 100 / totalTime); if (deltaX > 0) { dlgProgressIcon.setBackgroundResource(R.drawable.jc_forward_icon); } else { @@ -423,10 +410,8 @@ private void showVolumDialog(float deltaY) { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { - if (CURRENT_STATE == CURRENT_STATE_PLAYING || CURRENT_STATE == CURRENT_STATE_PAUSE) { - int time = progress * JCMediaManager.intance().mediaPlayer.getDuration() / 100; - JCMediaManager.intance().mediaPlayer.seekTo(time); - } + int time = progress * JCMediaManager.instance().mediaPlayer.getDuration() / 100; + JCMediaManager.instance().mediaPlayer.seekTo(time); } } @@ -442,33 +427,19 @@ public void onStopTrackingTouch(SeekBar seekBar) { @Override public void surfaceCreated(SurfaceHolder holder) { - if (FalseSetDisPlay) {//case setDisplay faild in prepared(); - FalseSetDisPlay = false; - setDisplayCaseFailse(); - } - if (IF_CURRENT_IS_FULLSCREEN) {//fullscreen from normal - setDisplayCaseFailse(); - } - if (BACK_FROM_FULLSCREEN) { - BACK_FROM_FULLSCREEN = false; - setDisplayCaseFailse(); - } - ifNeedCreateSurfaceView = false; + setDisplayCaseFailed(); } - private boolean FalseSetDisPlay = false; - private void setDisplayCaseFailse() { + private void setDisplayCaseFailed() {//这里如果一直不成功是否有隐患 try { - JCMediaManager.intance().mediaPlayer.setDisplay(surfaceHolder); + JCMediaManager.instance().mediaPlayer.setDisplay(surfaceHolder); } catch (IllegalArgumentException e) { Log.i(TAG, "recreate surfaceview from IllegalArgumentException"); - FalseSetDisPlay = true; addSurfaceView(); e.printStackTrace(); } catch (IllegalStateException e1) { Log.i(TAG, "recreate surfaceview from IllegalStateException"); - FalseSetDisPlay = true; addSurfaceView(); e1.printStackTrace(); } @@ -480,15 +451,13 @@ public void surfaceChanged(SurfaceHolder holder, int format, int width, int heig @Override public void surfaceDestroyed(SurfaceHolder holder) { - ifNeedCreateSurfaceView = true; } - private boolean ifNeedCreateSurfaceView = false; @Override public void onPrepared() { if (CURRENT_STATE != CURRENT_STATE_PREPAREING) return; - JCMediaManager.intance().mediaPlayer.start(); + JCMediaManager.instance().mediaPlayer.start(); startProgressTimer(); setStateAndUi(CURRENT_STATE_PLAYING); } @@ -496,7 +465,7 @@ public void onPrepared() { @Override public void onAutoCompletion() { //make me normal first - if (JC_BURIED_POINT != null && JCMediaManager.intance().listener == this) { + if (JC_BURIED_POINT != null && JCMediaManager.instance().listener == this) { if (IF_CURRENT_IS_FULLSCREEN) { JC_BURIED_POINT.onAutoCompleteFullscreen(url, objects); } else { @@ -512,13 +481,15 @@ public void onCompletion() { cancelProgressTimer(); resetProgressAndTime(); setStateAndUi(CURRENT_STATE_NORMAL); - + if (rlSurfaceContainer.getChildCount() > 0) { + rlSurfaceContainer.removeAllViews(); + } //if fullscreen finish activity what ever the activity is directly or click fullscreen finishMyFullscreen(); if (IF_FULLSCREEN_FROM_NORMAL) {//如果在进入全屏后播放完就初始化自己非全屏的控件 IF_FULLSCREEN_FROM_NORMAL = false; - JCMediaManager.intance().lastListener.onCompletion(); + JCMediaManager.instance().lastListener.onCompletion(); } } @@ -543,8 +514,8 @@ public void onError(int what, int extra) { @Override public void onVideoSizeChanged() { - int mVideoWidth = JCMediaManager.intance().currentVideoWidth; - int mVideoHeight = JCMediaManager.intance().currentVideoHeight; + int mVideoWidth = JCMediaManager.instance().currentVideoWidth; + int mVideoHeight = JCMediaManager.instance().currentVideoHeight; if (mVideoWidth != 0 && mVideoHeight != 0) { surfaceHolder.setFixedSize(mVideoWidth, mVideoHeight); surfaceView.requestLayout(); @@ -553,8 +524,7 @@ public void onVideoSizeChanged() { @Override public void onBackFullscreen() { - CURRENT_STATE = JCMediaManager.intance().lastState; - BACK_FROM_FULLSCREEN = true; + CURRENT_STATE = JCMediaManager.instance().lastState; setStateAndUi(CURRENT_STATE); } @@ -584,14 +554,20 @@ protected void cancelProgressTimer() { } } - protected void setTextAndProgress(int secProgress) { + protected int getCurrentPositionWhenPlaying() { + int position = 0; if (CURRENT_STATE == CURRENT_STATE_PLAYING || CURRENT_STATE == CURRENT_STATE_PAUSE) { - int position = JCMediaManager.intance().mediaPlayer.getCurrentPosition(); - int duration = JCMediaManager.intance().mediaPlayer.getDuration(); - // if duration == 0 (e.g. in HLS streams) avoids ArithmeticException - int progress = position * 100 / (duration == 0 ? 1 : duration); - setProgressAndTime(progress, secProgress, position, duration); + position = JCMediaManager.instance().mediaPlayer.getCurrentPosition(); } + return position; + } + + protected void setTextAndProgress(int secProgress) { + int position = getCurrentPositionWhenPlaying(); + int duration = JCMediaManager.instance().mediaPlayer.getDuration(); + // if duration == 0 (e.g. in HLS streams) avoids ArithmeticException + int progress = position * 100 / (duration == 0 ? 1 : duration); + setProgressAndTime(progress, secProgress, position, duration); } protected void setProgressAndTime(int progress, int secProgress, int currentTime, int totalTime) { @@ -611,13 +587,13 @@ protected void resetProgressAndTime() { } protected void quitFullScreenGoToNormal() { - if (JC_BURIED_POINT != null && JCMediaManager.intance().listener == this) { + if (JC_BURIED_POINT != null && JCMediaManager.instance().listener == this) { JC_BURIED_POINT.onQuitFullscreen(url, objects); } - JCMediaManager.intance().mediaPlayer.setDisplay(null); - JCMediaManager.intance().listener = JCMediaManager.intance().lastListener; - JCMediaManager.intance().lastState = CURRENT_STATE;//save state - JCMediaManager.intance().listener.onBackFullscreen(); + JCMediaManager.instance().mediaPlayer.setDisplay(null); + JCMediaManager.instance().listener = JCMediaManager.instance().lastListener; + JCMediaManager.instance().lastState = CURRENT_STATE;//save state + JCMediaManager.instance().listener.onBackFullscreen(); finishMyFullscreen(); } @@ -629,7 +605,7 @@ protected void finishMyFullscreen() { public void backFullscreen() { if (IF_FULLSCREEN_IS_DIRECTLY) { - JCMediaManager.intance().mediaPlayer.stop(); + JCMediaManager.instance().mediaPlayer.stop(); finishMyFullscreen(); } else { CLICK_QUIT_FULLSCREEN_TIME = System.currentTimeMillis(); @@ -640,9 +616,9 @@ public void backFullscreen() { public static void releaseAllVideos() { if (IF_RELEASE_WHEN_ON_PAUSE) { - JCMediaManager.intance().mediaPlayer.release(); - if (JCMediaManager.intance().listener != null) { - JCMediaManager.intance().listener.onCompletion(); + JCMediaManager.instance().mediaPlayer.release(); + if (JCMediaManager.instance().listener != null) { + JCMediaManager.instance().listener.onCompletion(); } } else { IF_RELEASE_WHEN_ON_PAUSE = true; diff --git a/jcvideoplayer-lib/src/main/java/fm/jiecao/jcvideoplayer_lib/JCVideoPlayerStandard.java b/jcvideoplayer-lib/src/main/java/fm/jiecao/jcvideoplayer_lib/JCVideoPlayerStandard.java index f9eb34236..e9b4ec34c 100644 --- a/jcvideoplayer-lib/src/main/java/fm/jiecao/jcvideoplayer_lib/JCVideoPlayerStandard.java +++ b/jcvideoplayer-lib/src/main/java/fm/jiecao/jcvideoplayer_lib/JCVideoPlayerStandard.java @@ -54,6 +54,8 @@ protected void init(Context context) { @Override public void setUp(String url, Object... objects) { + if (JCMediaManager.instance().listener == this && (System.currentTimeMillis() - CLICK_QUIT_FULLSCREEN_TIME) < FULL_SCREEN_NORMAL_DELAY) + return; if (objects.length == 0) return; super.setUp(url, objects); tvTitle.setText(objects[0].toString()); @@ -108,7 +110,7 @@ public boolean onTouch(View v, MotionEvent event) { case MotionEvent.ACTION_UP: startDismissControlViewTimer(); if (changePosition) { - int duration = JCMediaManager.intance().mediaPlayer.getDuration(); + int duration = JCMediaManager.instance().mediaPlayer.getDuration(); int progress = resultTimePosition * 100 / (duration == 0 ? 1 : duration); pbBottom.setProgress(progress); } @@ -147,7 +149,7 @@ public void onClick(View v) { startDismissControlViewTimer(); } } else if (i == R.id.surface_container) { - if (jc_BuriedPointStandard != null && JCMediaManager.intance().listener == this) { + if (jc_BuriedPointStandard != null && JCMediaManager.instance().listener == this) { if (IF_CURRENT_IS_FULLSCREEN) { jc_BuriedPointStandard.onClickBlankFullscreen(url, objects); } else { diff --git a/jcvideoplayer-lib/src/main/res/layout/jc_layout_base.xml b/jcvideoplayer-lib/src/main/res/layout/jc_layout_base.xml index 4599f9e47..5d483e8e9 100644 --- a/jcvideoplayer-lib/src/main/res/layout/jc_layout_base.xml +++ b/jcvideoplayer-lib/src/main/res/layout/jc_layout_base.xml @@ -4,18 +4,16 @@ android:layout_height="match_parent" android:background="@android:color/black"> + + - - + + -