Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
沁852
GSYVideoPlayer
提交
b672fec8
G
GSYVideoPlayer
项目概览
沁852
/
GSYVideoPlayer
与 Fork 源项目一致
从无法访问的项目Fork
通知
9
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 搜索 >>
提交
b672fec8
编写于
11月 27, 2016
作者:
S
shuyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.2.6
上级
de74ec5d
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
136 addition
and
21 deletion
+136
-21
README.md
README.md
+12
-2
app/src/main/java/com/example/gsyvideoplayer/adapter/ListNormalAdapter.java
...com/example/gsyvideoplayer/adapter/ListNormalAdapter.java
+32
-0
app/src/main/java/com/example/gsyvideoplayer/adapter/ListVideoAdapter.java
.../com/example/gsyvideoplayer/adapter/ListVideoAdapter.java
+1
-0
gradle.properties
gradle.properties
+1
-1
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java
...c/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java
+6
-3
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoPlayer.java
...rc/main/java/com/shuyu/gsyvideoplayer/GSYVideoPlayer.java
+12
-2
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/utils/ListVideoUtil.java
...in/java/com/shuyu/gsyvideoplayer/utils/ListVideoUtil.java
+15
-1
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/GSYBaseVideoPlayer.java
...va/com/shuyu/gsyvideoplayer/video/GSYBaseVideoPlayer.java
+22
-7
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java
...om/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java
+35
-5
未找到文件。
README.md
浏览文件 @
b672fec8
...
...
@@ -17,13 +17,13 @@
<dependency>
<groupId>com.shuyu</groupId>
<artifactId>gsyVideoPlayer</artifactId>
<version>1.2.
5
</version>
<version>1.2.
6
</version>
<type>pom</type>
</dependency>
```
```
compile 'com.shuyu:gsyVideoPlayer:1.2.
5
'
compile 'com.shuyu:gsyVideoPlayer:1.2.
6
'
```
## 效果,录屏下的屏幕旋转和实际有些出入
...
...
@@ -43,6 +43,16 @@ compile 'com.shuyu:gsyVideoPlayer:1.2.5'
*
<h4>
3、详情模式
</h4>
<img
src=
"https://github.com/CarGuo/GSYVideoPlayer/blob/master/04.gif"
width=
"240px"
height=
"426px"
/>
### 1.2.6 修正了StandardGSYVideoPlayer的接口全屏回调问题,增加了循环播放的接口
```
public void setLooping(boolean looping)
```
### 1.2.5 增加了新接口,支持直接横屏锁住界面,关闭全屏动画,组合接口使用
*
GSYVideoPlayer
...
...
app/src/main/java/com/example/gsyvideoplayer/adapter/ListNormalAdapter.java
浏览文件 @
b672fec8
...
...
@@ -8,10 +8,12 @@ import android.widget.BaseAdapter;
import
android.widget.ImageView
;
import
com.example.gsyvideoplayer.R
;
import
com.example.gsyvideoplayer.listener.SampleListener
;
import
com.example.gsyvideoplayer.model.VideoModel
;
import
com.shuyu.gsyvideoplayer.GSYVideoManager
;
import
com.shuyu.gsyvideoplayer.GSYVideoPlayer
;
import
com.shuyu.gsyvideoplayer.listener.StandardVideoAllCallBack
;
import
com.shuyu.gsyvideoplayer.utils.Debuger
;
import
com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
;
import
java.util.ArrayList
;
...
...
@@ -95,7 +97,10 @@ public class ListNormalAdapter extends BaseAdapter {
holder
.
gsyVideoPlayer
.
setLockLand
(
true
);
holder
.
gsyVideoPlayer
.
setPlayTag
(
TAG
);
holder
.
gsyVideoPlayer
.
setShowFullAnimation
(
true
);
//循环
holder
.
gsyVideoPlayer
.
setLooping
(
true
);
holder
.
gsyVideoPlayer
.
setPlayPosition
(
position
);
holder
.
gsyVideoPlayer
.
setStandardVideoAllCallBack
(
sampleListener
);
return
convertView
;
}
...
...
@@ -113,4 +118,31 @@ public class ListNormalAdapter extends BaseAdapter {
StandardGSYVideoPlayer
gsyVideoPlayer
;
}
//小窗口关闭被点击的时候回调处理回复页面
SampleListener
sampleListener
=
new
SampleListener
(){
@Override
public
void
onPrepared
(
String
url
,
Object
...
objects
)
{
super
.
onPrepared
(
url
,
objects
);
Debuger
.
printfLog
(
"onPrepared"
);
}
@Override
public
void
onQuitSmallWidget
(
String
url
,
Object
...
objects
)
{
super
.
onQuitSmallWidget
(
url
,
objects
);
Debuger
.
printfLog
(
"onQuitSmallWidget"
);
}
@Override
public
void
onClickBlankFullscreen
(
String
url
,
Object
...
objects
)
{
super
.
onClickBlankFullscreen
(
url
,
objects
);
Debuger
.
printfLog
(
"onClickBlankFullscreen"
);
}
@Override
public
void
onEnterFullscreen
(
String
url
,
Object
...
objects
)
{
super
.
onEnterFullscreen
(
url
,
objects
);
Debuger
.
printfLog
(
"onEnterFullscreen"
);
}
};
}
app/src/main/java/com/example/gsyvideoplayer/adapter/ListVideoAdapter.java
浏览文件 @
b672fec8
...
...
@@ -86,6 +86,7 @@ public class ListVideoAdapter extends BaseAdapter {
@Override
public
void
onClick
(
View
v
)
{
notifyDataSetChanged
();
listVideoUtil
.
setLoop
(
true
);
listVideoUtil
.
setPlayPositionAndTag
(
position
,
TAG
);
final
String
url
=
"http://baobab.wdjcdn.com/14564977406580.mp4"
;
listVideoUtil
.
startPlay
(
url
);
...
...
gradle.properties
浏览文件 @
b672fec8
...
...
@@ -18,7 +18,7 @@ org.gradle.jvmargs=-Xmx1536m
BINTRAY_USER
=
BINTRAY_KEY
=
PROJ_GROUP
=
com.shuyu
PROJ_VERSION
=
1.2.
5
PROJ_VERSION
=
1.2.
6
PROJ_NAME
=
gsyVideo
PROJ_WEBSITEURL
=
hhttps://github.com/CarGuo/GSYVideoPlayer
PROJ_ISSUETRACKERURL
=
...
...
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java
浏览文件 @
b672fec8
...
...
@@ -131,6 +131,7 @@ public class GSYVideoManager implements IMediaPlayer.OnPreparedListener, IMediaP
mediaPlayer
=
new
IjkMediaPlayer
();
mediaPlayer
.
setAudioStreamType
(
AudioManager
.
STREAM_MUSIC
);
mediaPlayer
.
setDataSource
(((
GSYModel
)
msg
.
obj
).
getUrl
(),
((
GSYModel
)
msg
.
obj
).
getMapHeadData
());
mediaPlayer
.
setLooping
(((
GSYModel
)
msg
.
obj
).
isLooping
());
mediaPlayer
.
setOnCompletionListener
(
GSYVideoManager
.
this
);
mediaPlayer
.
setOnBufferingUpdateListener
(
GSYVideoManager
.
this
);
mediaPlayer
.
setScreenOnWhilePlaying
(
true
);
...
...
@@ -145,17 +146,19 @@ public class GSYVideoManager implements IMediaPlayer.OnPreparedListener, IMediaP
}
break
;
case
HANDLER_SETDISPLAY:
if
(
msg
.
obj
==
null
)
{
if
(
msg
.
obj
==
null
&&
mediaPlayer
!=
null
)
{
mediaPlayer
.
setSurface
(
null
);
}
else
{
Surface
holder
=
(
Surface
)
msg
.
obj
;
if
(
holder
.
isValid
())
{
if
(
mediaPlayer
!=
null
&&
holder
.
isValid
())
{
mediaPlayer
.
setSurface
(
holder
);
}
}
break
;
case
HANDLER_RELEASE:
mediaPlayer
.
release
();
if
(
mediaPlayer
!=
null
)
{
mediaPlayer
.
release
();
}
break
;
}
}
...
...
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoPlayer.java
浏览文件 @
b672fec8
...
...
@@ -123,8 +123,6 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View.
protected
boolean
mFirstTouch
=
false
;
//是否首次触摸
protected
boolean
mLooping
=
false
;
//// TODO: 2016/11/13 循环
protected
boolean
mCacheFile
=
false
;
//是否是缓存的文件
...
...
@@ -729,6 +727,10 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View.
public
void
onBufferingUpdate
(
int
percent
)
{
if
(
mCurrentState
!=
CURRENT_STATE_NORMAL
&&
mCurrentState
!=
CURRENT_STATE_PREPAREING
)
{
setTextAndProgress
(
percent
);
//循环清除进度
if
(
mLooping
&&
percent
==
0
&&
mProgressBar
.
getProgress
()
>
3
)
{
loopSetProgressAndTime
();
}
}
}
...
...
@@ -863,6 +865,7 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View.
mTotalTimeTextView
.
setText
(
CommonUtil
.
stringForTime
(
totalTime
));
}
protected
void
resetProgressAndTime
()
{
mProgressBar
.
setProgress
(
0
);
mProgressBar
.
setSecondaryProgress
(
0
);
...
...
@@ -870,6 +873,13 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View.
mTotalTimeTextView
.
setText
(
CommonUtil
.
stringForTime
(
0
));
}
protected
void
loopSetProgressAndTime
()
{
mProgressBar
.
setProgress
(
0
);
mProgressBar
.
setSecondaryProgress
(
0
);
mCurrentTimeTextView
.
setText
(
CommonUtil
.
stringForTime
(
0
));
}
/**
* 页面销毁了记得调用是否所有的video
*/
...
...
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/utils/ListVideoUtil.java
浏览文件 @
b672fec8
...
...
@@ -43,6 +43,7 @@ public class ListVideoUtil {
private
boolean
isSmall
;
//当前是否小屏
private
boolean
hideStatusBar
;
//是否隐藏有状态bar
private
boolean
hideActionBar
;
//是否隐藏有状态ActionBar
private
boolean
isLoop
;
//循环
private
int
[]
listItemRect
;
//当前item框的屏幕位置
...
...
@@ -114,6 +115,8 @@ public class ListVideoUtil {
gsyVideoPlayer
.
release
();
gsyVideoPlayer
.
setLooping
(
isLoop
);
gsyVideoPlayer
.
setUp
(
url
,
true
,
""
);
//增加title
...
...
@@ -494,6 +497,17 @@ public class ListVideoUtil {
}
public
boolean
isLoop
()
{
return
isLoop
;
}
/**
* 循环
*/
public
void
setLoop
(
boolean
loop
)
{
isLoop
=
loop
;
}
/**
* 获取当前总时长
*/
...
...
@@ -509,7 +523,7 @@ public class ListVideoUtil {
}
/**
* 获取播放器
* 获取播放器
,直接拿播放器,根据需要自定义配置
*/
public
StandardGSYVideoPlayer
getGsyVideoPlayer
()
{
return
gsyVideoPlayer
;
...
...
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/GSYBaseVideoPlayer.java
浏览文件 @
b672fec8
...
...
@@ -65,6 +65,8 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
protected
boolean
mLockLand
=
false
;
//当前全屏是否锁定全屏
protected
boolean
mLooping
=
false
;
//循环
protected
Context
mContext
;
protected
String
mOriginUrl
;
//原来的url
...
...
@@ -195,7 +197,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
* @param actionBar 是否有actionBar,有的话需要隐藏
* @param statusBar 是否有状态bar,有的话需要隐藏
*/
public
void
startWindowFullscreen
(
final
Context
context
,
final
boolean
actionBar
,
final
boolean
statusBar
)
{
public
GSYBaseVideoPlayer
startWindowFullscreen
(
final
Context
context
,
final
boolean
actionBar
,
final
boolean
statusBar
)
{
hideSupportActionBar
(
context
,
actionBar
,
statusBar
);
...
...
@@ -224,7 +226,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
gsyVideoPlayer
.
setId
(
FULLSCREEN_ID
);
gsyVideoPlayer
.
setIfCurrentIsFullscreen
(
true
);
gsyVideoPlayer
.
setVideoAllCallBack
(
mVideoAllCallBack
);
gsyVideoPlayer
.
setLooping
(
isLooping
());
final
FrameLayout
.
LayoutParams
lpParent
=
new
FrameLayout
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
ViewGroup
.
LayoutParams
.
MATCH_PARENT
);
final
FrameLayout
frameLayout
=
new
FrameLayout
(
context
);
frameLayout
.
setBackgroundColor
(
Color
.
BLACK
);
...
...
@@ -271,10 +273,11 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
GSYVideoManager
.
instance
().
setLastListener
(
this
);
GSYVideoManager
.
instance
().
setListener
(
gsyVideoPlayer
);
return
gsyVideoPlayer
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
...
...
@@ -332,7 +335,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
/**
* 显示小窗口
*/
public
void
showSmallVideo
(
Point
size
,
final
boolean
actionBar
,
final
boolean
statusBar
)
{
public
GSYBaseVideoPlayer
showSmallVideo
(
Point
size
,
final
boolean
actionBar
,
final
boolean
statusBar
)
{
final
ViewGroup
vp
=
getViewGroup
();
...
...
@@ -373,6 +376,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
//隐藏掉所有的弹出状态哟
gsyVideoPlayer
.
onClickUiToggle
();
gsyVideoPlayer
.
setVideoAllCallBack
(
mVideoAllCallBack
);
gsyVideoPlayer
.
setLooping
(
isLooping
());
gsyVideoPlayer
.
setSmallVideoTextureView
(
new
SmallVideoTouch
(
gsyVideoPlayer
,
marginLeft
,
marginTop
));
GSYVideoManager
.
instance
().
setLastListener
(
this
);
...
...
@@ -383,12 +387,11 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
mVideoAllCallBack
.
onEnterSmallWidget
(
mUrl
,
mObjects
);
}
}
catch
(
InstantiationException
e
)
{
e
.
printStackTrace
();
return
gsyVideoPlayer
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
/**
...
...
@@ -489,6 +492,18 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
}
public
boolean
isLooping
()
{
return
mLooping
;
}
/**
* 设置循环
*/
public
void
setLooping
(
boolean
looping
)
{
this
.
mLooping
=
looping
;
}
/**
* 设置播放过程中的回调
*
...
...
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java
浏览文件 @
b672fec8
...
...
@@ -5,6 +5,7 @@ import android.app.AlertDialog;
import
android.app.Dialog
;
import
android.content.Context
;
import
android.content.DialogInterface
;
import
android.graphics.Point
;
import
android.graphics.drawable.Drawable
;
import
android.text.TextUtils
;
import
android.util.AttributeSet
;
...
...
@@ -503,7 +504,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mProgressDialog
.
getWindow
().
addFlags
(
32
);
mProgressDialog
.
getWindow
().
addFlags
(
16
);
mProgressDialog
.
getWindow
().
setLayout
(-
2
,
-
2
);
if
(
mDialogProgressNormalColor
!=
-
11
)
{
if
(
mDialogProgressNormalColor
!=
-
11
)
{
mDialogTotalTime
.
setTextColor
(
mDialogProgressNormalColor
);
}
if
(
mDialogProgressHighLightColor
!=
-
11
)
{
...
...
@@ -603,6 +604,39 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
}
}
@Override
protected
void
loopSetProgressAndTime
()
{
super
.
loopSetProgressAndTime
();
mBottomProgressBar
.
setProgress
(
0
);
}
@Override
public
void
onBackFullscreen
()
{
clearFullscreenLayout
();
}
@Override
public
GSYBaseVideoPlayer
startWindowFullscreen
(
Context
context
,
boolean
actionBar
,
boolean
statusBar
)
{
GSYBaseVideoPlayer
gsyBaseVideoPlayer
=
super
.
startWindowFullscreen
(
context
,
actionBar
,
statusBar
);
if
(
gsyBaseVideoPlayer
!=
null
)
{
StandardGSYVideoPlayer
gsyVideoPlayer
=
(
StandardGSYVideoPlayer
)
gsyBaseVideoPlayer
;
gsyVideoPlayer
.
setStandardVideoAllCallBack
(
mStandardVideoAllCallBack
);
}
return
gsyBaseVideoPlayer
;
}
@Override
public
GSYBaseVideoPlayer
showSmallVideo
(
Point
size
,
boolean
actionBar
,
boolean
statusBar
)
{
GSYBaseVideoPlayer
gsyBaseVideoPlayer
=
super
.
showSmallVideo
(
size
,
actionBar
,
statusBar
);
if
(
gsyBaseVideoPlayer
!=
null
)
{
StandardGSYVideoPlayer
gsyVideoPlayer
=
(
StandardGSYVideoPlayer
)
gsyBaseVideoPlayer
;
gsyVideoPlayer
.
setStandardVideoAllCallBack
(
mStandardVideoAllCallBack
);
}
return
gsyBaseVideoPlayer
;
}
private
void
startDismissControlViewTimer
()
{
cancelDismissControlViewTimer
();
...
...
@@ -677,10 +711,6 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
return
mTitleTextView
;
}
@Override
public
void
onBackFullscreen
()
{
clearFullscreenLayout
();
}
/**
* 底部进度条-弹出的
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录