Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ac13
GSYVideoPlayer
提交
e460d15c
G
GSYVideoPlayer
项目概览
ac13
/
GSYVideoPlayer
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
GSYVideoPlayer
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
e460d15c
编写于
3月 31, 2018
作者:
S
shuyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix demo
上级
872d95f8
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
85 addition
and
62 deletion
+85
-62
README.md
README.md
+11
-25
app/src/main/java/com/example/gsyvideoplayer/ListVideoActivity.java
...in/java/com/example/gsyvideoplayer/ListVideoActivity.java
+3
-0
app/src/main/java/com/example/gsyvideoplayer/RecyclerViewActivity.java
...java/com/example/gsyvideoplayer/RecyclerViewActivity.java
+1
-16
app/src/main/java/com/example/gsyvideoplayer/adapter/ListNormalAdapter.java
...com/example/gsyvideoplayer/adapter/ListNormalAdapter.java
+10
-0
app/src/main/java/com/example/gsyvideoplayer/fragment/VideoFragment.java
...va/com/example/gsyvideoplayer/fragment/VideoFragment.java
+1
-16
app/src/main/java/com/example/gsyvideoplayer/video/manager/CustomManager.java
...m/example/gsyvideoplayer/video/manager/CustomManager.java
+18
-0
dependencies.md
dependencies.md
+5
-5
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoADManager.java
...main/java/com/shuyu/gsyvideoplayer/GSYVideoADManager.java
+18
-0
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java
...c/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java
+18
-0
未找到文件。
README.md
浏览文件 @
e460d15c
...
...
@@ -130,9 +130,19 @@ compile 'com.shuyu:gsyVideoPlayer-ex_so:4.1.1'
## 五、近期版本
### 4.1.1 (2018-0
3-13
)
### 4.1.1 (2018-0
4-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)
...
...
app/src/main/java/com/example/gsyvideoplayer/ListVideoActivity.java
浏览文件 @
e460d15c
...
...
@@ -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
();
...
...
app/src/main/java/com/example/gsyvideoplayer/RecyclerViewActivity.java
浏览文件 @
e460d15c
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
))
{
...
...
app/src/main/java/com/example/gsyvideoplayer/adapter/ListNormalAdapter.java
浏览文件 @
e460d15c
...
...
@@ -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 {
}
}
}
app/src/main/java/com/example/gsyvideoplayer/fragment/VideoFragment.java
浏览文件 @
e460d15c
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
();
...
...
app/src/main/java/com/example/gsyvideoplayer/video/manager/CustomManager.java
浏览文件 @
e460d15c
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
;
}
}
dependencies.md
浏览文件 @
e460d15c
...
...
@@ -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
'
```
--------------------------------------------------------------------------------
...
...
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoADManager.java
浏览文件 @
e460d15c
...
...
@@ -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
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java
浏览文件 @
e460d15c
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录