提交 e460d15c 编写于 作者: S shuyu

fix demo

上级 872d95f8
......@@ -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
* 2、修复了渲染层在某些条件下,截图时返回大小不对问题。
* 3、一些细节的优化处理。
* 4、增加Manager的isFullState方法
```
/*
* 当前是否全屏状态
*
* @return 当前是否全屏状态, true代表是。
*/
public static boolean isFullState(Activity activity)
```
### 4.1.0 (2018-02-26)
* 1、update to ijk 0.8.8
......@@ -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)
......
......@@ -57,6 +57,9 @@ public class ListVideoActivity extends AppCompatActivity {
//对应的播放列表TAG
if (GSYVideoManager.instance().getPlayTag().equals(ListNormalAdapter.TAG)
&& (position < firstVisibleItem || position > lastVisibleItem)) {
if(listNormalAdapter.isFull()) {
return;
}
//如果滑出去了上面和下面就是否,和今日头条一样
GSYVideoManager.releaseAllVideos();
listNormalAdapter.notifyDataSetChanged();
......
package com.example.gsyvideoplayer;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
......@@ -36,7 +34,6 @@ public class RecyclerViewActivity extends AppCompatActivity {
List<VideoModel> dataList = new ArrayList<>();
boolean mFull = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
......@@ -81,7 +78,7 @@ public class RecyclerViewActivity extends AppCompatActivity {
//如果滑出去了上面和下面就是否,和今日头条一样
//是否全屏
if(!mFull) {
if(!GSYVideoManager.isFullState(RecyclerViewActivity.this)) {
GSYVideoManager.releaseAllVideos();
recyclerNormalAdapter.notifyDataSetChanged();
}
......@@ -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
public void onBackPressed() {
if (GSYVideoManager.backFromWindowFull(this)) {
......
......@@ -38,6 +38,8 @@ public class ListNormalAdapter extends BaseAdapter {
protected boolean isPlay;
protected boolean isFull;
public ListNormalAdapter(Context context) {
super();
this.context = context;
......@@ -183,6 +185,7 @@ public class ListNormalAdapter extends BaseAdapter {
@Override
public void onQuitFullscreen(String url, Object... objects) {
super.onQuitFullscreen(url, objects);
isFull = false;
GSYVideoManager.instance().setNeedMute(true);
if (getListNeedAutoLand()) {
ListNormalAdapter.this.onQuitFullscreen();
......@@ -193,6 +196,7 @@ public class ListNormalAdapter extends BaseAdapter {
public void onEnterFullscreen(String url, Object... objects) {
super.onEnterFullscreen(url, objects);
GSYVideoManager.instance().setNeedMute(false);
isFull = true;
holder.gsyVideoPlayer.getCurrentPlayer().getTitleTextView().setText((String) objects[0]);
}
......@@ -201,6 +205,7 @@ public class ListNormalAdapter extends BaseAdapter {
super.onAutoComplete(url, objects);
curPlayer = null;
isPlay = false;
isFull = false;
if (getListNeedAutoLand()) {
ListNormalAdapter.this.onAutoComplete();
}
......@@ -230,6 +235,9 @@ public class ListNormalAdapter extends BaseAdapter {
}
}
public boolean isFull() {
return isFull;
}
/**************************支持全屏重力全屏的部分**************************/
......@@ -308,4 +316,6 @@ public class ListNormalAdapter extends BaseAdapter {
}
}
}
package com.example.gsyvideoplayer.fragment;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
......@@ -36,7 +34,6 @@ public class VideoFragment extends Fragment {
List<VideoModel> dataList = new ArrayList<>();
boolean mFull;
public VideoFragment() {
// Required empty public constructor
......@@ -86,7 +83,7 @@ public class VideoFragment extends Fragment {
if (GSYVideoManager.instance().getPlayTag().equals(RecyclerItemNormalHolder.TAG)
&& (position < firstVisibleItem || position > lastVisibleItem)) {
//如果滑出去了上面和下面就是否,和今日头条一样
if(!mFull) {
if(!GSYVideoManager.isFullState(getActivity())) {
GSYVideoManager.releaseAllVideos();
recyclerNormalAdapter.notifyDataSetChanged();
}
......@@ -105,18 +102,6 @@ public class VideoFragment extends Fragment {
return false;
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
//如果旋转了就全屏
if (newConfig.orientation != ActivityInfo.SCREEN_ORIENTATION_USER) {
mFull = false;
} else {
mFull = true;
}
}
@Override
public void onPause() {
super.onPause();
......
package com.example.gsyvideoplayer.video.manager;
import android.app.Activity;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
......@@ -9,6 +10,7 @@ import android.view.Window;
import com.example.gsyvideoplayer.R;
import com.shuyu.gsyvideoplayer.GSYVideoBaseManager;
import com.shuyu.gsyvideoplayer.utils.CommonUtil;
import com.shuyu.gsyvideoplayer.video.base.GSYVideoPlayer;
import java.util.HashMap;
import java.util.Map;
......@@ -165,4 +167,20 @@ public class CustomManager extends GSYVideoBaseManager {
public static void removeManager(String 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'
#### D、支持使用ijkPlayer的so
```
compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.4'
compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.4'
compile 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.3'
compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.4'
compile 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.4'
compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'
compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8'
compile 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8'
compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'
compile 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8'
```
--------------------------------------------------------------------------------
......
......@@ -2,6 +2,7 @@ package com.shuyu.gsyvideoplayer;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
......@@ -9,6 +10,7 @@ import android.view.Window;
import com.danikula.videocache.HttpProxyCacheServer;
import com.shuyu.gsyvideoplayer.utils.CommonUtil;
import com.shuyu.gsyvideoplayer.video.base.GSYVideoPlayer;
import java.io.File;
......@@ -157,4 +159,20 @@ public class GSYVideoADManager extends GSYVideoBaseManager {
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;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
......@@ -10,6 +11,7 @@ import android.view.Window;
import com.danikula.videocache.HttpProxyCacheServer;
import com.shuyu.gsyvideoplayer.listener.GSYMediaPlayerListener;
import com.shuyu.gsyvideoplayer.utils.CommonUtil;
import com.shuyu.gsyvideoplayer.video.base.GSYVideoPlayer;
import java.io.File;
......@@ -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.
先完成此消息的编辑!
想要评论请 注册