Skip to content
This repository has been archived by the owner on Aug 9, 2022. It is now read-only.

Commit

Permalink
Merge branch 'release/v4.7.1_preview'
Browse files Browse the repository at this point in the history
  • Loading branch information
Nathen committed Oct 9, 2016
2 parents 5425b69 + 221d38d commit 7e80b62
Show file tree
Hide file tree
Showing 14 changed files with 67 additions and 62 deletions.
12 changes: 6 additions & 6 deletions README-ZH.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
--
<p align="center">
<a href="http://developer.android.com/index.html"><img src="https://img.shields.io/badge/platform-android-green.svg"></a>
<a href="http://search.maven.org/#artifactdetails%7Cfm.jiecao%7Cjiecaovideoplayer%7C4.6.3%7Caar"><img src="https://img.shields.io/badge/Maven%20Central-4.7.0-green.svg"></a>
<a href="http://search.maven.org/#artifactdetails%7Cfm.jiecao%7Cjiecaovideoplayer%7C4.6.3%7Caar"><img src="https://img.shields.io/badge/Maven%20Central-4.7.0_preview-green.svg"></a>
<a href="http://choosealicense.com/licenses/mit/"><img src="https://img.shields.io/badge/license-MIT-green.svg"></a>
<a href="https://android-arsenal.com/details/1/3269"><img src="https://img.shields.io/badge/Android%20Arsenal-jiecaovideoplayer-green.svg?style=true"></a>
</p>
Expand All @@ -22,22 +22,22 @@

##效果

**[jiecaovideoplayer-4.7.0-demo.apk](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/4.7.0/jiecaovideoplayer-4.7.0-demo.apk)**
**[jiecaovideoplayer-4.7.0_preview-demo.apk](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/v4.7.0_preview_Preview/jiecaovideoplayer-4.7.0_preview-demo.apk)**

![Demo Screenshot][1]

##使用

1.添加类库,这个版本的目的是预览自动进入小窗功能,不要用在生产环境,稳定版本仍然是v4.6.5
```gradle
compile 'fm.jiecao:jiecaovideoplayer:4.7.0'
compile 'fm.jiecao:jiecaovideoplayer:4.7.0_preview'
```

或直接下载

* [jiecaovideoplayer-4.7.0.aar](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/4.7.0/jiecaovideoplayer-4.7.0.aar)
* [jiecaovideoplayer-4.7.0-javadoc.jar](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/4.7.0/jiecaovideoplayer-4.7.0-javadoc.jar)
* [jiecaovideoplayer-4.7.0-sources.jar](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/4.7.0/jiecaovideoplayer-4.7.0-sources.jar)
* [jiecaovideoplayer-4.7.0_preview.aar](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/4.7.0_preview/jiecaovideoplayer-4.7.0_preview.aar)
* [jiecaovideoplayer-4.7.0_preview-javadoc.jar](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/4.7.0_preview/jiecaovideoplayer-4.7.0_preview-javadoc.jar)
* [jiecaovideoplayer-4.7.0_preview-sources.jar](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/4.7.0_preview/jiecaovideoplayer-4.7.0_preview-sources.jar)

2.添加布局
```xml
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
--
<p align="center">
<a href="http://developer.android.com/index.html"><img src="https://img.shields.io/badge/platform-android-green.svg"></a>
<a href="http://search.maven.org/#artifactdetails%7Cfm.jiecao%7Cjiecaovideoplayer%7C4.6.3%7Caar"><img src="https://img.shields.io/badge/Maven%20Central-4.7.0-green.svg"></a>
<a href="http://search.maven.org/#artifactdetails%7Cfm.jiecao%7Cjiecaovideoplayer%7C4.6.3%7Caar"><img src="https://img.shields.io/badge/Maven%20Central-4.7.0_preview-green.svg"></a>
<a href="http://choosealicense.com/licenses/mit/"><img src="https://img.shields.io/badge/license-MIT-green.svg"></a>
<a href="https://android-arsenal.com/details/1/3269"><img src="https://img.shields.io/badge/Android%20Arsenal-jiecaovideoplayer-green.svg?style=true"></a>
</p>
Expand All @@ -28,22 +28,22 @@ Ambition is become the most widely used video playback control.

## Effect

**[jiecaovideoplayer-4.7.0-demo.apk](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/4.7.0/jiecaovideoplayer-4.7.0-demo.apk)**
**[jiecaovideoplayer-4.7.0_preview-demo.apk](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/v4.7.0_preview_Preview/jiecaovideoplayer-4.7.0_preview-demo.apk)**

![Demo Screenshot][1]

## Usage

1.Import library,new feature auto tiny window is not perfect this version, do not use it in you project, this is juct preview the feature , Stable version is still v4.6.5
```gradle
compile 'fm.jiecao:jiecaovideoplayer:4.7.0'
compile 'fm.jiecao:jiecaovideoplayer:4.7.0_preview'
```

Or download lib

* [jiecaovideoplayer-4.7.0.aar](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/4.7.0/jiecaovideoplayer-4.7.0.aar)
* [jiecaovideoplayer-4.7.0-javadoc.jar](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/4.7.0/jiecaovideoplayer-4.7.0-javadoc.jar)
* [jiecaovideoplayer-4.7.0-sources.jar](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/4.7.0/jiecaovideoplayer-4.7.0-sources.jar)
* [jiecaovideoplayer-4.7.0_preview.aar](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/4.7.0_preview/jiecaovideoplayer-4.7.0_preview.aar)
* [jiecaovideoplayer-4.7.0_preview-javadoc.jar](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/4.7.0_preview/jiecaovideoplayer-4.7.0_preview-javadoc.jar)
* [jiecaovideoplayer-4.7.0_preview-sources.jar](https://github.com/lipangit/JieCaoVideoPlayer/releases/download/4.7.0_preview/jiecaovideoplayer-4.7.0_preview-sources.jar)

2.Add JCVideoPlayer in your layout
```xml
Expand Down
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ android {
applicationId "fm.jiecao.jiecaovideoplayer"
minSdkVersion 14
targetSdkVersion 24
versionCode 42
versionName "4.7.0"
versionCode 43
versionName "4.7.1_preview"
}
buildTypes {
release {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public class VideoConstant {
"嫂子出来",
"嫂子溢出",
"嫂子我姓王",
"嫂子怕好了",
"嫂子趴好了",
"嫂子很渴",
"嫂子这样不好",
"嫂子别笑",
Expand Down
Binary file removed downloads/jiecaovideoplayer-4.6.4-demo.apk
Binary file not shown.
Binary file removed downloads/jiecaovideoplayer-4.6.4-javadoc.jar
Binary file not shown.
Binary file removed downloads/jiecaovideoplayer-4.6.4-sources.jar
Binary file not shown.
Binary file removed downloads/jiecaovideoplayer-4.6.4.aar
Binary file not shown.
2 changes: 1 addition & 1 deletion gradle/maven_push.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ signing {

group = "fm.jiecao"
archivesBaseName = "jiecaovideoplayer"
version = "4.7.0"
version = "4.7.1_preview"

uploadArchives {
repositories {
Expand Down
4 changes: 2 additions & 2 deletions jcvideoplayer-lib/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ android {
defaultConfig {
minSdkVersion 14
targetSdkVersion 24
versionCode 42
versionName "4.7.0"
versionCode 43
versionName "4.7.1_preview"
}
buildTypes {
release {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
Expand Down Expand Up @@ -84,8 +83,8 @@ public abstract class JCVideoPlayer extends FrameLayout implements JCMediaPlayer
public ViewGroup topContainer, bottomContainer;
public Surface surface;

protected static JCBuriedPoint JC_BURIED_POINT;
protected static Timer UPDATE_PROGRESS_TIMER;
protected static WeakReference<JCBuriedPoint> JC_BURIED_POINT;
protected static Timer UPDATE_PROGRESS_TIMER;

protected int mScreenWidth;
protected int mScreenHeight;
Expand Down Expand Up @@ -140,11 +139,21 @@ public boolean setUp(String url, int screen, Object... objects) {
if (!TextUtils.isEmpty(this.url) && TextUtils.equals(this.url, url)) {
return false;
}
JCVideoPlayerManager.checkAndPutListener(this);
if (JCVideoPlayerManager.CURRENT_SCROLL_LISTENER != null && JCVideoPlayerManager.CURRENT_SCROLL_LISTENER.get() != null) {
if (this == JCVideoPlayerManager.CURRENT_SCROLL_LISTENER.get()) {
if (((JCVideoPlayer) JCVideoPlayerManager.CURRENT_SCROLL_LISTENER.get()).currentState == CURRENT_STATE_PLAYING) {
if (url.equals(JCMediaManager.instance().mediaPlayer.getDataSource())) {
((JCVideoPlayer) JCVideoPlayerManager.CURRENT_SCROLL_LISTENER.get()).startWindowTiny();//如果列表中,滑动过快,在还没来得及onScroll的时候自己已经被复用了
}
}
}
}
this.url = url;
this.objects = objects;
this.currentScreen = screen;
setUiWitStateAndScreen(CURRENT_STATE_NORMAL);
if (url.equals(JCMediaManager.instance().mediaPlayer.getDataSource())) {
if (url.equals(JCMediaManager.instance().mediaPlayer.getDataSource())) {//如果初始化了一个正在tinyWindow的前身,就应该监听它的滑动,如果显示就在这个listener中播放
JCVideoPlayerManager.putScrollListener(this);
}
return true;
Expand Down Expand Up @@ -230,7 +239,6 @@ public void prepareVideo() {
mAudioManager.requestAudioFocus(onAudioFocusChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
JCUtils.scanForActivity(getContext()).getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

JCVideoPlayerManager.clearScrollListenerList();
JCVideoPlayerManager.putScrollListener(this);
JCMediaManager.instance().prepare(url, mapHeadData, looping);
setUiWitStateAndScreen(CURRENT_STATE_PREPARING);
Expand Down Expand Up @@ -804,20 +812,17 @@ public static void releaseAllVideos() {
}

public static void setJcBuriedPoint(JCBuriedPoint jcBuriedPoint) {
JC_BURIED_POINT = jcBuriedPoint;
JC_BURIED_POINT = new WeakReference<>(jcBuriedPoint);
}

public void onEvent(int type) {
if (JC_BURIED_POINT != null && isCurrentMediaListener()) {
JC_BURIED_POINT.onEvent(type, url, currentScreen, objects);
if (JC_BURIED_POINT != null && JC_BURIED_POINT.get() != null && isCurrentMediaListener()) {
JC_BURIED_POINT.get().onEvent(type, url, currentScreen, objects);
}
}

@Override
public void onScrollChange() {//这里需要自己判断自己是 进入小窗,退出小窗,暂停还是播放
if (objects[0].equals("嫂子出来")) {
System.out.println("sssssssss");
}
if (url.equals(JCMediaManager.instance().mediaPlayer.getDataSource())) {
if (JCVideoPlayerManager.getFirst() == null) return;
if (JCVideoPlayerManager.getFirst().getScreenType() == SCREEN_WINDOW_TINY) {
Expand All @@ -839,11 +844,12 @@ public void onScrollChange() {//这里需要自己判断自己是 进入小窗,
}

public static void onScroll() {//这里就应该保证,listener的正确的完整的赋值,调用非播放的控件
for (WeakReference<JCMediaPlayerListener> jcMediaPlayerListenerWeakReference : JCVideoPlayerManager.CURRENT_SCROLL_LISTENER_LIST) {
if (JCVideoPlayerManager.CURRENT_SCROLL_LISTENER != null && JCVideoPlayerManager.CURRENT_SCROLL_LISTENER.get() != null) {
JCMediaPlayerListener jcMediaPlayerListener = JCVideoPlayerManager.CURRENT_SCROLL_LISTENER.get();
if (//jcMediaPlayerListenerWeakReference.get().getState() != CURRENT_STATE_NORMAL &&
jcMediaPlayerListenerWeakReference.get().getState() != CURRENT_STATE_ERROR &&
jcMediaPlayerListenerWeakReference.get().getState() != CURRENT_STATE_AUTO_COMPLETE) {
jcMediaPlayerListenerWeakReference.get().onScrollChange();
jcMediaPlayerListener.getState() != CURRENT_STATE_ERROR &&
jcMediaPlayerListener.getState() != CURRENT_STATE_AUTO_COMPLETE) {
jcMediaPlayerListener.onScrollChange();
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package fm.jiecao.jcvideoplayer_lib;

import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

/**
* Put JCVideoPlayer into layout
Expand All @@ -12,38 +10,38 @@
*/
public class JCVideoPlayerManager {

public static List<WeakReference<JCMediaPlayerListener>> CURRENT_SCROLL_LISTENER_LIST = new LinkedList<>();
public static LinkedList<WeakReference<JCMediaPlayerListener>> LISTENERLIST = new LinkedList<>();
public static WeakReference<JCMediaPlayerListener> CURRENT_SCROLL_LISTENER;
public static LinkedList<WeakReference<JCMediaPlayerListener>> LISTENERLIST = new LinkedList<>();

public static void putScrollListener(JCMediaPlayerListener listener) {
if (listener.getScreenType() == JCVideoPlayer.SCREEN_WINDOW_TINY ||
listener.getScreenType() == JCVideoPlayer.SCREEN_WINDOW_FULLSCREEN) return;
// for (int i = 0; i < CURRENT_SCROLL_LISTENER_LIST.size(); i++) {
// if (CURRENT_SCROLL_LISTENER_LIST.get(i) == null &&
// CURRENT_SCROLL_LISTENER_LIST.get(i).get().getUrl() == listener.getUrl()) {
// CURRENT_SCROLL_LISTENER_LIST.clear();
// CURRENT_SCROLL_LISTENER_LIST.add(new WeakReference<>(listener));
// return;
// }
// }
// for (int i = 0; i < CURRENT_SCROLL_LISTENER_LIST.size(); i++) {
// if (CURRENT_SCROLL_LISTENER_LIST.get(i) == null &&
// CURRENT_SCROLL_LISTENER_LIST.get(i).get() == listener) {
// CURRENT_SCROLL_LISTENER_LIST.add(i, new WeakReference<>(listener));
// return;
// }
// }
CURRENT_SCROLL_LISTENER_LIST.clear();
CURRENT_SCROLL_LISTENER_LIST.add(new WeakReference<>(listener));//每次setUp的时候都应该add
}

public static void clearScrollListenerList() {
CURRENT_SCROLL_LISTENER_LIST.clear();
CURRENT_SCROLL_LISTENER = new WeakReference<>(listener);//每次setUp的时候都应该add
}

public static void putListener(JCMediaPlayerListener listener) {
LISTENERLIST.push(new WeakReference<>(listener));
}
public static void checkAndPutListener(JCMediaPlayerListener listener) {
if (listener.getScreenType() == JCVideoPlayer.SCREEN_WINDOW_TINY ||
listener.getScreenType() == JCVideoPlayer.SCREEN_WINDOW_FULLSCREEN) return;
int location = -1;
for (int i = 1; i < LISTENERLIST.size(); i++) {
JCMediaPlayerListener jcMediaPlayerListener = LISTENERLIST.get(i).get();
if (listener.getUrl().equals(jcMediaPlayerListener.getUrl())) {
location = i;
}
}
if (location != -1) {
LISTENERLIST.remove(location);
if (LISTENERLIST.size() <= location) {
LISTENERLIST.addLast(new WeakReference<>(listener));
} else {
LISTENERLIST.set(location, new WeakReference<>(listener));

}
}
}

public static JCMediaPlayerListener popListener() {
if (LISTENERLIST.size() == 0) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -204,9 +204,9 @@ public void onClick(View v) {
} else if (i == R.id.back) {
backPress();
} else if (i == R.id.back_tiny) {
if (JCVideoPlayerManager.CURRENT_SCROLL_LISTENER_LIST.get(0).get() != null) {
if (JCVideoPlayerManager.CURRENT_SCROLL_LISTENER_LIST.get(0).get().getUrl() != JCMediaManager.instance().mediaPlayer.getDataSource()) {
// if (!((JCVideoPlayer) JCVideoPlayerManager.CURRENT_SCROLL_LISTENER_LIST.get(0).get()).isShown()) {
if (JCVideoPlayerManager.CURRENT_SCROLL_LISTENER.get() != null) {
if (JCVideoPlayerManager.CURRENT_SCROLL_LISTENER.get().getUrl() != JCMediaManager.instance().mediaPlayer.getDataSource()) {
// if (!((JCVideoPlayer) JCVideoPlayerManager.CURRENT_SCROLL_LISTENER.get(0).get()).isShown()) {
releaseAllVideos();
return;
// }
Expand Down
3 changes: 2 additions & 1 deletion jcvideoplayer-lib/src/main/res/layout/jc_layout_standard.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
<fm.jiecao.jcvideoplayer_lib.JCResizeImageView
android:id="@+id/cache"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
android:layout_height="match_parent"
android:layout_centerInParent="true"/>

<ImageView
android:id="@+id/cover"
Expand Down

0 comments on commit 7e80b62

Please sign in to comment.