提交 e460d15c 编写于 作者: S shuyu

fix demo

上级 872d95f8
...@@ -130,9 +130,19 @@ compile 'com.shuyu:gsyVideoPlayer-ex_so:4.1.1' ...@@ -130,9 +130,19 @@ compile 'com.shuyu:gsyVideoPlayer-ex_so:4.1.1'
## 五、近期版本 ## 五、近期版本
### 4.1.1 (2018-03-13) ### 4.1.1 (2018-04-01)
* 1、update support lib to 26.0.2 * 1、update support lib to 26.0.2
* 2、修复了渲染层在某些条件下,截图时返回大小不对问题。 * 2、修复了渲染层在某些条件下,截图时返回大小不对问题。
* 3、一些细节的优化处理。
* 4、增加Manager的isFullState方法
```
/*
* 当前是否全屏状态
*
* @return 当前是否全屏状态, true代表是。
*/
public static boolean isFullState(Activity activity)
```
### 4.1.0 (2018-02-26) ### 4.1.0 (2018-02-26)
* 1、update to ijk 0.8.8 * 1、update to ijk 0.8.8
...@@ -159,30 +169,6 @@ compile 'com.shuyu:gsyVideoPlayer-ex_so:4.1.1' ...@@ -159,30 +169,6 @@ compile 'com.shuyu:gsyVideoPlayer-ex_so:4.1.1'
``` ```
### 4.0.0-beat1(2018-02-06)
* 1、新增简单片头广告支持。
`GSYSampleADVideoPlayer 与 DetailADPlayer`
* 2、优化了ListGSYVideoPlayer、增加`playNext()`接口。
* 3、优化代码结构,调整部分API接口(稍微调整下,偶尔有和旧版本不兼容的,参考源码和demo修改下方法名即可)。
* 4、增加GSYVideoHelper视频帮助类,更加节省资源。
* 5、增加GSYSampleCallBack节省继承,优化GSYVideoProgressListener的回调。
* 6、增加GSYVideoViewBridge、重载`getGSYVideoManager()`方法实现自己的Manager。
* 7、支持自定义渲染层,demo中`CustomRenderVideoPlayer`演示如何设置自定义渲染层。
* 8、`ListMultiVideoActivity``MultiSampleVideo`演示如何同时播放多个视频。
* 9、`DetailADPlayer2``ListADVideoActivity`演示广告与中间插入广告支持。
* 10、增加音频焦点方法。
```
/**
* 长时间失去音频焦点,暂停播放器
*
* @param releaseWhenLossAudio 默认true,false的时候只会暂停
*/
public void setReleaseWhenLossAudio(boolean releaseWhenLossAudio)
```
### 更多版本请查阅:[版本更新说明](https://github.com/CarGuo/GSYVideoPlayer/blob/master/UPDATE_VERSION.md) ### 更多版本请查阅:[版本更新说明](https://github.com/CarGuo/GSYVideoPlayer/blob/master/UPDATE_VERSION.md)
......
...@@ -57,6 +57,9 @@ public class ListVideoActivity extends AppCompatActivity { ...@@ -57,6 +57,9 @@ public class ListVideoActivity extends AppCompatActivity {
//对应的播放列表TAG //对应的播放列表TAG
if (GSYVideoManager.instance().getPlayTag().equals(ListNormalAdapter.TAG) if (GSYVideoManager.instance().getPlayTag().equals(ListNormalAdapter.TAG)
&& (position < firstVisibleItem || position > lastVisibleItem)) { && (position < firstVisibleItem || position > lastVisibleItem)) {
if(listNormalAdapter.isFull()) {
return;
}
//如果滑出去了上面和下面就是否,和今日头条一样 //如果滑出去了上面和下面就是否,和今日头条一样
GSYVideoManager.releaseAllVideos(); GSYVideoManager.releaseAllVideos();
listNormalAdapter.notifyDataSetChanged(); listNormalAdapter.notifyDataSetChanged();
......
package com.example.gsyvideoplayer; package com.example.gsyvideoplayer;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.os.Build; import android.os.Build;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
...@@ -36,7 +34,6 @@ public class RecyclerViewActivity extends AppCompatActivity { ...@@ -36,7 +34,6 @@ public class RecyclerViewActivity extends AppCompatActivity {
List<VideoModel> dataList = new ArrayList<>(); List<VideoModel> dataList = new ArrayList<>();
boolean mFull = false;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
...@@ -81,7 +78,7 @@ public class RecyclerViewActivity extends AppCompatActivity { ...@@ -81,7 +78,7 @@ public class RecyclerViewActivity extends AppCompatActivity {
//如果滑出去了上面和下面就是否,和今日头条一样 //如果滑出去了上面和下面就是否,和今日头条一样
//是否全屏 //是否全屏
if(!mFull) { if(!GSYVideoManager.isFullState(RecyclerViewActivity.this)) {
GSYVideoManager.releaseAllVideos(); GSYVideoManager.releaseAllVideos();
recyclerNormalAdapter.notifyDataSetChanged(); recyclerNormalAdapter.notifyDataSetChanged();
} }
...@@ -92,18 +89,6 @@ public class RecyclerViewActivity extends AppCompatActivity { ...@@ -92,18 +89,6 @@ public class RecyclerViewActivity extends AppCompatActivity {
} }
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
//如果旋转了就全屏
if (newConfig.orientation != ActivityInfo.SCREEN_ORIENTATION_USER) {
mFull = false;
} else {
mFull = true;
}
}
@Override @Override
public void onBackPressed() { public void onBackPressed() {
if (GSYVideoManager.backFromWindowFull(this)) { if (GSYVideoManager.backFromWindowFull(this)) {
......
...@@ -38,6 +38,8 @@ public class ListNormalAdapter extends BaseAdapter { ...@@ -38,6 +38,8 @@ public class ListNormalAdapter extends BaseAdapter {
protected boolean isPlay; protected boolean isPlay;
protected boolean isFull;
public ListNormalAdapter(Context context) { public ListNormalAdapter(Context context) {
super(); super();
this.context = context; this.context = context;
...@@ -183,6 +185,7 @@ public class ListNormalAdapter extends BaseAdapter { ...@@ -183,6 +185,7 @@ public class ListNormalAdapter extends BaseAdapter {
@Override @Override
public void onQuitFullscreen(String url, Object... objects) { public void onQuitFullscreen(String url, Object... objects) {
super.onQuitFullscreen(url, objects); super.onQuitFullscreen(url, objects);
isFull = false;
GSYVideoManager.instance().setNeedMute(true); GSYVideoManager.instance().setNeedMute(true);
if (getListNeedAutoLand()) { if (getListNeedAutoLand()) {
ListNormalAdapter.this.onQuitFullscreen(); ListNormalAdapter.this.onQuitFullscreen();
...@@ -193,6 +196,7 @@ public class ListNormalAdapter extends BaseAdapter { ...@@ -193,6 +196,7 @@ public class ListNormalAdapter extends BaseAdapter {
public void onEnterFullscreen(String url, Object... objects) { public void onEnterFullscreen(String url, Object... objects) {
super.onEnterFullscreen(url, objects); super.onEnterFullscreen(url, objects);
GSYVideoManager.instance().setNeedMute(false); GSYVideoManager.instance().setNeedMute(false);
isFull = true;
holder.gsyVideoPlayer.getCurrentPlayer().getTitleTextView().setText((String) objects[0]); holder.gsyVideoPlayer.getCurrentPlayer().getTitleTextView().setText((String) objects[0]);
} }
...@@ -201,6 +205,7 @@ public class ListNormalAdapter extends BaseAdapter { ...@@ -201,6 +205,7 @@ public class ListNormalAdapter extends BaseAdapter {
super.onAutoComplete(url, objects); super.onAutoComplete(url, objects);
curPlayer = null; curPlayer = null;
isPlay = false; isPlay = false;
isFull = false;
if (getListNeedAutoLand()) { if (getListNeedAutoLand()) {
ListNormalAdapter.this.onAutoComplete(); ListNormalAdapter.this.onAutoComplete();
} }
...@@ -230,6 +235,9 @@ public class ListNormalAdapter extends BaseAdapter { ...@@ -230,6 +235,9 @@ public class ListNormalAdapter extends BaseAdapter {
} }
} }
public boolean isFull() {
return isFull;
}
/**************************支持全屏重力全屏的部分**************************/ /**************************支持全屏重力全屏的部分**************************/
...@@ -308,4 +316,6 @@ public class ListNormalAdapter extends BaseAdapter { ...@@ -308,4 +316,6 @@ public class ListNormalAdapter extends BaseAdapter {
} }
} }
} }
package com.example.gsyvideoplayer.fragment; package com.example.gsyvideoplayer.fragment;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
...@@ -36,7 +34,6 @@ public class VideoFragment extends Fragment { ...@@ -36,7 +34,6 @@ public class VideoFragment extends Fragment {
List<VideoModel> dataList = new ArrayList<>(); List<VideoModel> dataList = new ArrayList<>();
boolean mFull;
public VideoFragment() { public VideoFragment() {
// Required empty public constructor // Required empty public constructor
...@@ -86,7 +83,7 @@ public class VideoFragment extends Fragment { ...@@ -86,7 +83,7 @@ public class VideoFragment extends Fragment {
if (GSYVideoManager.instance().getPlayTag().equals(RecyclerItemNormalHolder.TAG) if (GSYVideoManager.instance().getPlayTag().equals(RecyclerItemNormalHolder.TAG)
&& (position < firstVisibleItem || position > lastVisibleItem)) { && (position < firstVisibleItem || position > lastVisibleItem)) {
//如果滑出去了上面和下面就是否,和今日头条一样 //如果滑出去了上面和下面就是否,和今日头条一样
if(!mFull) { if(!GSYVideoManager.isFullState(getActivity())) {
GSYVideoManager.releaseAllVideos(); GSYVideoManager.releaseAllVideos();
recyclerNormalAdapter.notifyDataSetChanged(); recyclerNormalAdapter.notifyDataSetChanged();
} }
...@@ -105,18 +102,6 @@ public class VideoFragment extends Fragment { ...@@ -105,18 +102,6 @@ public class VideoFragment extends Fragment {
return false; return false;
} }
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
//如果旋转了就全屏
if (newConfig.orientation != ActivityInfo.SCREEN_ORIENTATION_USER) {
mFull = false;
} else {
mFull = true;
}
}
@Override @Override
public void onPause() { public void onPause() {
super.onPause(); super.onPause();
......
package com.example.gsyvideoplayer.video.manager; package com.example.gsyvideoplayer.video.manager;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
...@@ -9,6 +10,7 @@ import android.view.Window; ...@@ -9,6 +10,7 @@ import android.view.Window;
import com.example.gsyvideoplayer.R; import com.example.gsyvideoplayer.R;
import com.shuyu.gsyvideoplayer.GSYVideoBaseManager; import com.shuyu.gsyvideoplayer.GSYVideoBaseManager;
import com.shuyu.gsyvideoplayer.utils.CommonUtil; import com.shuyu.gsyvideoplayer.utils.CommonUtil;
import com.shuyu.gsyvideoplayer.video.base.GSYVideoPlayer;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
...@@ -165,4 +167,20 @@ public class CustomManager extends GSYVideoBaseManager { ...@@ -165,4 +167,20 @@ public class CustomManager extends GSYVideoBaseManager {
public static void removeManager(String key) { public static void removeManager(String key) {
sMap.remove(key); sMap.remove(key);
} }
/**
* 当前是否全屏状态
*
* @return 当前是否全屏状态, true代表是。
*/
@SuppressWarnings("ResourceType")
public static boolean isFullState(Activity activity) {
ViewGroup vp = (ViewGroup) (CommonUtil.scanForActivity(activity)).findViewById(Window.ID_ANDROID_CONTENT);
final View full = vp.findViewById(FULLSCREEN_ID);
GSYVideoPlayer gsyVideoPlayer = null;
if (full != null) {
gsyVideoPlayer = (GSYVideoPlayer) full;
}
return gsyVideoPlayer != null;
}
} }
...@@ -40,11 +40,11 @@ compile 'com.shuyu:gsyVideoPlayer-ex_so:4.1.1' ...@@ -40,11 +40,11 @@ compile 'com.shuyu:gsyVideoPlayer-ex_so:4.1.1'
#### D、支持使用ijkPlayer的so #### D、支持使用ijkPlayer的so
``` ```
compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.4' compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'
compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.4' compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8'
compile 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.3' compile 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8'
compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.4' compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'
compile 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.4' compile 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8'
``` ```
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
......
...@@ -2,6 +2,7 @@ package com.shuyu.gsyvideoplayer; ...@@ -2,6 +2,7 @@ package com.shuyu.gsyvideoplayer;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -9,6 +10,7 @@ import android.view.Window; ...@@ -9,6 +10,7 @@ import android.view.Window;
import com.danikula.videocache.HttpProxyCacheServer; import com.danikula.videocache.HttpProxyCacheServer;
import com.shuyu.gsyvideoplayer.utils.CommonUtil; import com.shuyu.gsyvideoplayer.utils.CommonUtil;
import com.shuyu.gsyvideoplayer.video.base.GSYVideoPlayer;
import java.io.File; import java.io.File;
...@@ -157,4 +159,20 @@ public class GSYVideoADManager extends GSYVideoBaseManager { ...@@ -157,4 +159,20 @@ public class GSYVideoADManager extends GSYVideoBaseManager {
GSYVideoManager.instance().listener().onVideoResume(seek); GSYVideoManager.instance().listener().onVideoResume(seek);
} }
} }
/**
* 当前是否全屏状态
*
* @return 当前是否全屏状态, true代表是。
*/
@SuppressWarnings("ResourceType")
public static boolean isFullState(Activity activity) {
ViewGroup vp = (ViewGroup) (CommonUtil.scanForActivity(activity)).findViewById(Window.ID_ANDROID_CONTENT);
final View full = vp.findViewById(FULLSCREEN_ID);
GSYVideoPlayer gsyVideoPlayer = null;
if (full != null) {
gsyVideoPlayer = (GSYVideoPlayer) full;
}
return gsyVideoPlayer != null;
}
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.shuyu.gsyvideoplayer; ...@@ -2,6 +2,7 @@ package com.shuyu.gsyvideoplayer;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -10,6 +11,7 @@ import android.view.Window; ...@@ -10,6 +11,7 @@ import android.view.Window;
import com.danikula.videocache.HttpProxyCacheServer; import com.danikula.videocache.HttpProxyCacheServer;
import com.shuyu.gsyvideoplayer.listener.GSYMediaPlayerListener; import com.shuyu.gsyvideoplayer.listener.GSYMediaPlayerListener;
import com.shuyu.gsyvideoplayer.utils.CommonUtil; import com.shuyu.gsyvideoplayer.utils.CommonUtil;
import com.shuyu.gsyvideoplayer.video.base.GSYVideoPlayer;
import java.io.File; import java.io.File;
...@@ -184,4 +186,20 @@ public class GSYVideoManager extends GSYVideoBaseManager { ...@@ -184,4 +186,20 @@ public class GSYVideoManager extends GSYVideoBaseManager {
} }
} }
/**
* 当前是否全屏状态
*
* @return 当前是否全屏状态, true代表是。
*/
@SuppressWarnings("ResourceType")
public static boolean isFullState(Activity activity) {
ViewGroup vp = (ViewGroup) (CommonUtil.scanForActivity(activity)).findViewById(Window.ID_ANDROID_CONTENT);
final View full = vp.findViewById(FULLSCREEN_ID);
GSYVideoPlayer gsyVideoPlayer = null;
if (full != null) {
gsyVideoPlayer = (GSYVideoPlayer) full;
}
return gsyVideoPlayer != null;
}
} }
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册