Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
NotesChapter
GSYVideoPlayer
提交
60fb6bab
G
GSYVideoPlayer
项目概览
NotesChapter
/
GSYVideoPlayer
与 Fork 源项目一致
从无法访问的项目Fork
通知
8
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 搜索 >>
提交
60fb6bab
编写于
11月 29, 2016
作者:
S
shuyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.3.0
上级
c94bf908
变更
11
显示空白变更内容
内联
并排
Showing
11 changed file
with
304 addition
and
37 deletion
+304
-37
README.md
README.md
+52
-2
app/src/main/java/com/example/gsyvideoplayer/PlayActivity.java
...rc/main/java/com/example/gsyvideoplayer/PlayActivity.java
+6
-1
app/src/main/java/com/example/gsyvideoplayer/adapter/ListNormalAdapter.java
...com/example/gsyvideoplayer/adapter/ListNormalAdapter.java
+34
-2
app/src/main/java/com/example/gsyvideoplayer/adapter/ListVideoAdapter.java
.../com/example/gsyvideoplayer/adapter/ListVideoAdapter.java
+4
-0
gradle.properties
gradle.properties
+1
-1
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java
...c/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java
+51
-1
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoPlayer.java
...rc/main/java/com/shuyu/gsyvideoplayer/GSYVideoPlayer.java
+40
-22
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/utils/FileUtils.java
...c/main/java/com/shuyu/gsyvideoplayer/utils/FileUtils.java
+33
-0
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/utils/ListVideoUtil.java
...in/java/com/shuyu/gsyvideoplayer/utils/ListVideoUtil.java
+37
-1
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/GSYBaseVideoPlayer.java
...va/com/shuyu/gsyvideoplayer/video/GSYBaseVideoPlayer.java
+11
-4
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java
...om/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java
+35
-3
未找到文件。
README.md
浏览文件 @
60fb6bab
...
...
@@ -19,13 +19,13 @@
<dependency>
<groupId>com.shuyu</groupId>
<artifactId>gsyVideoPlayer</artifactId>
<version>1.
2.9
</version>
<version>1.
3.0
</version>
<type>pom</type>
</dependency>
```
```
compile 'com.shuyu:gsyVideoPlayer:1.
2.9
'
compile 'com.shuyu:gsyVideoPlayer:1.
3.0
'
```
## 效果,录屏下的屏幕旋转和实际有些出入
...
...
@@ -46,6 +46,56 @@ compile 'com.shuyu:gsyVideoPlayer:1.2.9'
<img
src=
"https://github.com/CarGuo/GSYVideoPlayer/blob/master/04.gif"
width=
"240px"
height=
"426px"
/>
### 1.3.0 支持配置缓存路径,添加了ListVideoUtils的一些接口
正常模式
```
//默认缓存路径方式
holder.gsyVideoPlayer.setUp(url, true, , ""));
···
//一个列表的视频缓存路径相同
holder.gsyVideoPlayer.setUp(url, true, new File(FileUtils.getTestPath(), ""));
···
//如果一个列表里的缓存路径不同,需要用下方的方式
holder.gsyVideoPlayer.initUIState();
//如果设置了点击封面可以播放,如果缓存列表路径不一致,还需要设置封面点击
holder.gsyVideoPlayer.setThumbPlay(true);
holder.gsyVideoPlayer.getStartButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//需要切换缓存路径的
holder.gsyVideoPlayer.setUp(url, true, new File(FileUtils.getTestPath(), ""));
holder.gsyVideoPlayer.startPlayLogic();
}
});
holder.gsyVideoPlayer.getThumbImageViewLayout().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//需要切换缓存路径的
holder.gsyVideoPlayer.setUp(url, true, new File(FileUtils.getTestPath(), ""));
holder.gsyVideoPlayer.startPlayLogic();
}
});
```
ListVideoUtils
```
public void setCachePath(File cachePath)
public void setObjects(Object[] objects)
public void setMapHeadData(Map<String, String> mapHeadData)
```
### 1.2.9 增加了下载速度的接口
```
...
...
app/src/main/java/com/example/gsyvideoplayer/PlayActivity.java
浏览文件 @
60fb6bab
...
...
@@ -13,9 +13,12 @@ import android.widget.ImageView;
import
com.example.gsyvideoplayer.listener.OnTransitionListener
;
import
com.shuyu.gsyvideoplayer.GSYVideoPlayer
;
import
com.shuyu.gsyvideoplayer.utils.FileUtils
;
import
com.shuyu.gsyvideoplayer.utils.OrientationUtils
;
import
com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
;
import
java.io.File
;
import
butterknife.BindView
;
import
butterknife.ButterKnife
;
...
...
@@ -46,7 +49,9 @@ public class PlayActivity extends AppCompatActivity {
private
void
init
()
{
String
url
=
"http://baobab.wdjcdn.com/14564977406580.mp4"
;
videoPlayer
.
setUp
(
url
,
true
,
""
);
//需要路径的
videoPlayer
.
setUp
(
url
,
true
,
new
File
(
FileUtils
.
getPath
()),
""
);
//videoPlayer.setUp(url, true, "");
//增加封面
ImageView
imageView
=
new
ImageView
(
this
);
...
...
app/src/main/java/com/example/gsyvideoplayer/adapter/ListNormalAdapter.java
浏览文件 @
60fb6bab
...
...
@@ -14,11 +14,15 @@ 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.utils.FileUtils
;
import
com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.List
;
import
static
com
.
shuyu
.
gsyvideoplayer
.
GSYVideoPlayer
.
CURRENT_STATE_NORMAL
;
/**
* Created by shuyu on 2016/11/12.
*/
...
...
@@ -78,7 +82,35 @@ public class ListNormalAdapter extends BaseAdapter {
final
String
url
=
"http://baobab.wdjcdn.com/14564977406580.mp4"
;
holder
.
gsyVideoPlayer
.
setUp
(
url
,
true
,
""
);
//默认缓存路径
//holder.gsyVideoPlayer.setUp(url, true, , ""));
//如果一个列表的缓存路劲都一一致
//holder.gsyVideoPlayer.setUp(url, true, new File(FileUtils.getTestPath(), ""));
//如果一个列表里的缓存路劲不一致
holder
.
gsyVideoPlayer
.
initUIState
();
//如果设置了点击封面可以播放,如果缓存列表路径不一致,还需要设置封面点击
holder
.
gsyVideoPlayer
.
setThumbPlay
(
true
);
holder
.
gsyVideoPlayer
.
getStartButton
().
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
//需要切换缓存路径的
holder
.
gsyVideoPlayer
.
setUp
(
url
,
true
,
new
File
(
FileUtils
.
getTestPath
(),
""
));
holder
.
gsyVideoPlayer
.
startPlayLogic
();
}
});
holder
.
gsyVideoPlayer
.
getThumbImageViewLayout
().
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
//需要切换缓存路径的
holder
.
gsyVideoPlayer
.
setUp
(
url
,
true
,
new
File
(
FileUtils
.
getTestPath
(),
""
));
holder
.
gsyVideoPlayer
.
startPlayLogic
();
}
});
//增加title
holder
.
gsyVideoPlayer
.
getTitleTextView
().
setVisibility
(
View
.
GONE
);
...
...
@@ -119,7 +151,7 @@ public class ListNormalAdapter extends BaseAdapter {
}
//小窗口关闭被点击的时候回调处理回复页面
SampleListener
sampleListener
=
new
SampleListener
()
{
SampleListener
sampleListener
=
new
SampleListener
()
{
@Override
public
void
onPrepared
(
String
url
,
Object
...
objects
)
{
super
.
onPrepared
(
url
,
objects
);
...
...
app/src/main/java/com/example/gsyvideoplayer/adapter/ListVideoAdapter.java
浏览文件 @
60fb6bab
...
...
@@ -11,8 +11,11 @@ import android.widget.ImageView;
import
com.example.gsyvideoplayer.R
;
import
com.example.gsyvideoplayer.model.VideoModel
;
import
com.shuyu.gsyvideoplayer.listener.StandardVideoAllCallBack
;
import
com.shuyu.gsyvideoplayer.utils.FileUtils
;
import
com.shuyu.gsyvideoplayer.utils.ListVideoUtil
;
import
com.shuyu.gsyvideoplayer.utils.OrientationUtils
;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -89,6 +92,7 @@ public class ListVideoAdapter extends BaseAdapter {
listVideoUtil
.
setLoop
(
true
);
listVideoUtil
.
setPlayPositionAndTag
(
position
,
TAG
);
final
String
url
=
"http://baobab.wdjcdn.com/14564977406580.mp4"
;
listVideoUtil
.
setCachePath
(
new
File
(
FileUtils
.
getPath
()));
listVideoUtil
.
startPlay
(
url
);
}
});
...
...
gradle.properties
浏览文件 @
60fb6bab
...
...
@@ -18,7 +18,7 @@ org.gradle.jvmargs=-Xmx1536m
BINTRAY_USER
=
BINTRAY_KEY
=
PROJ_GROUP
=
com.shuyu
PROJ_VERSION
=
1.
2.9
PROJ_VERSION
=
1.
3.0
PROJ_NAME
=
gsyVideo
PROJ_WEBSITEURL
=
hhttps://github.com/CarGuo/GSYVideoPlayer
PROJ_ISSUETRACKERURL
=
...
...
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoManager.java
浏览文件 @
60fb6bab
...
...
@@ -14,6 +14,7 @@ import com.danikula.videocache.HttpProxyCacheServer;
import
com.shuyu.gsyvideoplayer.listener.GSYMediaPlayerListener
;
import
com.shuyu.gsyvideoplayer.model.GSYModel
;
import
java.io.File
;
import
java.lang.ref.WeakReference
;
import
java.util.Map
;
...
...
@@ -48,11 +49,14 @@ public class GSYVideoManager implements IMediaPlayer.OnPreparedListener, IMediaP
private
HttpProxyCacheServer
proxy
;
//视频代理
private
File
cacheFile
;
private
String
playTag
=
""
;
//播放的tag,防止错位置,因为普通的url也可能重复
private
int
currentVideoWidth
=
0
;
//当前播放的视频宽的高
private
int
currentVideoHeight
=
0
;
//当前播放的视屏的高
private
int
lastState
;
//当前视频的最后状态
private
String
playTag
=
""
;
//播放的tag,防止错位置,因为普通的url也可能重复
private
int
playPosition
=
-
22
;
//播放的tag,防止错位置,因为普通的url也可能重复
...
...
@@ -72,6 +76,52 @@ public class GSYVideoManager implements IMediaPlayer.OnPreparedListener, IMediaP
GSYVideoManager
.
instance
().
newProxy
(
context
))
:
proxy
;
}
/**
* 获取缓存代理服务,带文件目录的
*/
public
static
HttpProxyCacheServer
getProxy
(
Context
context
,
File
file
)
{
//如果为空,返回默认的
if
(
file
==
null
)
{
return
getProxy
(
context
);
}
//如果已经有缓存文件路径,那么判断缓存文件路径是否一致
if
(
GSYVideoManager
.
instance
().
cacheFile
!=
null
&&
!
GSYVideoManager
.
instance
().
cacheFile
.
getAbsolutePath
().
equals
(
file
.
getAbsolutePath
()))
{
//不一致先关了旧的
HttpProxyCacheServer
proxy
=
GSYVideoManager
.
instance
().
proxy
;
if
(
proxy
!=
null
)
{
proxy
.
shutdown
();
}
//开启新的
return
(
GSYVideoManager
.
instance
().
proxy
=
GSYVideoManager
.
instance
().
newProxy
(
context
,
file
));
}
else
{
//还没有缓存文件的或者一致的,返回原来
HttpProxyCacheServer
proxy
=
GSYVideoManager
.
instance
().
proxy
;
return
proxy
==
null
?
(
GSYVideoManager
.
instance
().
proxy
=
GSYVideoManager
.
instance
().
newProxy
(
context
,
file
))
:
proxy
;
}
}
/**
* 创建缓存代理服务,带文件目录的.
*/
private
HttpProxyCacheServer
newProxy
(
Context
context
,
File
file
)
{
if
(!
file
.
exists
())
{
file
.
mkdirs
();
}
HttpProxyCacheServer
.
Builder
builder
=
new
HttpProxyCacheServer
.
Builder
(
context
);
builder
.
cacheDirectory
(
file
);
cacheFile
=
file
;
return
builder
.
build
();
}
/**
* 创建缓存代理服务
*/
...
...
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoPlayer.java
浏览文件 @
60fb6bab
...
...
@@ -27,6 +27,7 @@ import com.shuyu.gsyvideoplayer.utils.CommonUtil;
import
com.shuyu.gsyvideoplayer.utils.Debuger
;
import
com.shuyu.gsyvideoplayer.video.GSYBaseVideoPlayer
;
import
java.io.File
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Timer
;
...
...
@@ -77,8 +78,8 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View.
protected
Surface
mSurface
;
protected
ImageView
mBackButton
;
protected
Map
<
String
,
String
>
mMapHeadData
=
new
HashMap
<>();
protected
ProgressTimerTask
mProgressTimerTask
;
protected
AudioManager
mAudioManager
;
//音频焦点的监听
protected
Handler
mHandler
=
new
Handler
();
...
...
@@ -187,43 +188,60 @@ public abstract class GSYVideoPlayer extends GSYBaseVideoPlayer implements View.
* @return
*/
public
boolean
setUp
(
String
url
,
boolean
cacheWithPlay
,
Object
...
objects
)
{
mCache
=
cacheWithPlay
;
if
(
isCurrentMediaListener
()
&&
(
System
.
currentTimeMillis
()
-
CLICK_QUIT_FULLSCREEN_TIME
)
<
FULL_SCREEN_NORMAL_DELAY
)
return
false
;
mCurrentState
=
CURRENT_STATE_NORMAL
;
if
(
cacheWithPlay
&&
url
.
startsWith
(
"http"
)
&&
!
url
.
contains
(
"127.0.0.1"
))
{
mOriginUrl
=
url
;
HttpProxyCacheServer
proxy
=
GSYVideoManager
.
getProxy
(
getContext
().
getApplicationContext
());
url
=
proxy
.
getProxyUrl
(
url
);
mCacheFile
=
(!
url
.
startsWith
(
"http"
));
//Log.i(TAG, "mCacheFile " + mCacheFile + " " + url);
}
this
.
mUrl
=
url
;
this
.
mObjects
=
objects
;
setStateAndUi
(
CURRENT_STATE_NORMAL
);
return
true
;
return
setUp
(
url
,
cacheWithPlay
,
((
File
)
null
),
objects
);
}
/**
* 设置播放URL
*
* @param url
* @param cacheWithPlay 是否边播边缓存
* @param cachePath 缓存路径
* @param mapHeadData
* @param objects
* @return
*/
public
boolean
setUp
(
String
url
,
boolean
cacheWithPlay
,
Map
<
String
,
String
>
mapHeadData
,
Object
...
objects
)
{
if
(
setUp
(
url
,
cacheWithPlay
,
objects
))
{
@Override
public
boolean
setUp
(
String
url
,
boolean
cacheWithPlay
,
File
cachePath
,
Map
<
String
,
String
>
mapHeadData
,
Object
...
objects
)
{
if
(
setUp
(
url
,
cacheWithPlay
,
cachePath
,
objects
))
{
this
.
mMapHeadData
.
clear
();
if
(
mapHeadData
!=
null
)
this
.
mMapHeadData
.
putAll
(
mapHeadData
);
return
true
;
}
return
false
;
}
/**
* 设置播放URL
*
* @param url
* @param cacheWithPlay 是否边播边缓存
* @param cachePath 缓存路径
* @param objects
* @return
*/
@Override
public
boolean
setUp
(
String
url
,
boolean
cacheWithPlay
,
File
cachePath
,
Object
...
objects
)
{
mCache
=
cacheWithPlay
;
mCachePath
=
cachePath
;
if
(
isCurrentMediaListener
()
&&
(
System
.
currentTimeMillis
()
-
CLICK_QUIT_FULLSCREEN_TIME
)
<
FULL_SCREEN_NORMAL_DELAY
)
return
false
;
mCurrentState
=
CURRENT_STATE_NORMAL
;
if
(
cacheWithPlay
&&
url
.
startsWith
(
"http"
)
&&
!
url
.
contains
(
"127.0.0.1"
))
{
mOriginUrl
=
url
;
HttpProxyCacheServer
proxy
=
GSYVideoManager
.
getProxy
(
getContext
().
getApplicationContext
(),
cachePath
);
url
=
proxy
.
getProxyUrl
(
url
);
mCacheFile
=
(!
url
.
startsWith
(
"http"
));
}
this
.
mUrl
=
url
;
this
.
mObjects
=
objects
;
setStateAndUi
(
CURRENT_STATE_NORMAL
);
return
true
;
}
/**
* 设置播放显示状态
*
...
...
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/utils/FileUtils.java
0 → 100644
浏览文件 @
60fb6bab
package
com.shuyu.gsyvideoplayer.utils
;
import
android.os.Environment
;
import
java.io.File
;
public
class
FileUtils
{
private
static
final
String
SD_PATH
=
Environment
.
getExternalStorageDirectory
().
getPath
();
public
static
final
String
NAME
=
"GSYVideo"
;
public
static
final
String
NAME_TEST
=
"GSYVideoTest"
;
public
static
String
getAppPath
(
String
name
)
{
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
SD_PATH
);
sb
.
append
(
File
.
separator
);
sb
.
append
(
name
);
sb
.
append
(
File
.
separator
);
return
sb
.
toString
();
}
public
static
String
getPath
()
{
return
getAppPath
(
NAME
);
}
public
static
String
getTestPath
()
{
return
getAppPath
(
NAME_TEST
);
}
}
\ No newline at end of file
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/utils/ListVideoUtil.java
浏览文件 @
60fb6bab
...
...
@@ -17,6 +17,9 @@ import com.shuyu.gsyvideoplayer.video.GSYBaseVideoPlayer;
import
com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
;
import
com.transitionseverywhere.TransitionManager
;
import
java.io.File
;
import
java.util.Map
;
import
static
com
.
shuyu
.
gsyvideoplayer
.
utils
.
CommonUtil
.
getActionBarHeight
;
import
static
com
.
shuyu
.
gsyvideoplayer
.
utils
.
CommonUtil
.
getStatusBarHeight
;
...
...
@@ -37,6 +40,11 @@ public class ListVideoUtil {
private
StandardVideoAllCallBack
videoAllCallBack
;
private
String
url
;
private
Context
context
;
private
File
cachePath
;
private
Object
[]
objects
;
private
Map
<
String
,
String
>
mapHeadData
;
private
int
playPosition
=
-
1
;
// 播放的位置
private
int
speed
=
1
;
// 播放速度,仅支持6.0
...
...
@@ -120,7 +128,7 @@ public class ListVideoUtil {
gsyVideoPlayer
.
setSpeed
(
speed
);
gsyVideoPlayer
.
setUp
(
url
,
true
,
""
);
gsyVideoPlayer
.
setUp
(
url
,
true
,
cachePath
,
mapHeadData
,
objects
);
//增加title
gsyVideoPlayer
.
getTitleTextView
().
setVisibility
(
View
.
GONE
);
...
...
@@ -530,6 +538,34 @@ public class ListVideoUtil {
this
.
speed
=
speed
;
}
public
File
getCachePath
()
{
return
cachePath
;
}
/**
* 缓存的路径
*/
public
void
setCachePath
(
File
cachePath
)
{
this
.
cachePath
=
cachePath
;
}
public
Object
[]
getObjects
()
{
return
objects
;
}
public
void
setObjects
(
Object
[]
objects
)
{
this
.
objects
=
objects
;
}
public
Map
<
String
,
String
>
getMapHeadData
()
{
return
mapHeadData
;
}
public
void
setMapHeadData
(
Map
<
String
,
String
>
mapHeadData
)
{
this
.
mapHeadData
=
mapHeadData
;
}
/**
* 获取当前播放进度
*/
...
...
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/GSYBaseVideoPlayer.java
浏览文件 @
60fb6bab
...
...
@@ -25,7 +25,9 @@ import com.shuyu.gsyvideoplayer.utils.Debuger;
import
com.shuyu.gsyvideoplayer.utils.OrientationUtils
;
import
com.transitionseverywhere.TransitionManager
;
import
java.io.File
;
import
java.lang.reflect.Constructor
;
import
java.util.HashMap
;
import
java.util.Map
;
import
static
com
.
shuyu
.
gsyvideoplayer
.
utils
.
CommonUtil
.
getActionBarHeight
;
...
...
@@ -79,6 +81,8 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
protected
Object
[]
mObjects
;
protected
File
mCachePath
;
protected
ViewGroup
mTextureViewContainer
;
//渲染控件父类
protected
View
mSmallClose
;
//小窗口关闭按键
...
...
@@ -87,6 +91,8 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
private
OrientationUtils
mOrientationUtils
;
//旋转工具类
protected
Map
<
String
,
String
>
mMapHeadData
=
new
HashMap
<>();
private
Handler
mHandler
=
new
Handler
();
...
...
@@ -256,7 +262,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
resolveFullVideoShow
(
context
,
gsyVideoPlayer
);
}
gsyVideoPlayer
.
setUp
(
mUrl
,
mCache
,
mObjects
);
gsyVideoPlayer
.
setUp
(
mUrl
,
mCache
,
m
CachePath
,
mMapHeadData
,
m
Objects
);
gsyVideoPlayer
.
setStateAndUi
(
mCurrentState
);
gsyVideoPlayer
.
addTextureView
();
...
...
@@ -375,7 +381,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
vp
.
addView
(
frameLayout
,
lpParent
);
gsyVideoPlayer
.
setUp
(
mUrl
,
mCache
,
mObjects
);
gsyVideoPlayer
.
setUp
(
mUrl
,
mCache
,
m
CachePath
,
mMapHeadData
,
m
Objects
);
gsyVideoPlayer
.
setStateAndUi
(
mCurrentState
);
gsyVideoPlayer
.
addTextureView
();
//隐藏掉所有的弹出状态哟
...
...
@@ -431,7 +437,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
* @param objects
* @return
*/
public
abstract
boolean
setUp
(
String
url
,
boolean
cacheWithPlay
,
Object
...
objects
);
public
abstract
boolean
setUp
(
String
url
,
boolean
cacheWithPlay
,
File
cachePath
,
Object
...
objects
);
/**
* 设置播放URL
...
...
@@ -443,7 +449,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
* @return
*/
public
abstract
boolean
setUp
(
String
url
,
boolean
cacheWithPlay
,
Map
<
String
,
String
>
mapHeadData
,
Object
...
objects
);
public
abstract
boolean
setUp
(
String
url
,
boolean
cacheWithPlay
,
File
cachePath
,
Map
<
String
,
String
>
mapHeadData
,
Object
...
objects
);
/**
* 设置播放显示状态
...
...
@@ -462,6 +468,7 @@ public abstract class GSYBaseVideoPlayer extends FrameLayout implements GSYMedia
**/
protected
abstract
void
setSmallVideoTextureView
(
View
.
OnTouchListener
onTouchListener
);
protected
abstract
void
onClickUiToggle
();
/**
...
...
gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java
浏览文件 @
60fb6bab
...
...
@@ -30,6 +30,8 @@ import com.shuyu.gsyvideoplayer.listener.StandardVideoAllCallBack;
import
com.shuyu.gsyvideoplayer.utils.CommonUtil
;
import
com.shuyu.gsyvideoplayer.utils.Debuger
;
import
java.io.File
;
import
java.util.Map
;
import
java.util.Timer
;
import
java.util.TimerTask
;
...
...
@@ -86,6 +88,7 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
private
int
mDialogProgressNormalColor
=
-
11
;
private
boolean
mThumbPlay
;
//是否点击封面播放
public
void
setStandardVideoAllCallBack
(
StandardVideoAllCallBack
standardVideoAllCallBack
)
{
this
.
mStandardVideoAllCallBack
=
standardVideoAllCallBack
;
...
...
@@ -134,9 +137,15 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
@Override
public
boolean
setUp
(
String
url
,
boolean
cacheWithPlay
,
Object
...
objects
)
{
if
(
objects
.
length
==
0
)
return
false
;
if
(
super
.
setUp
(
url
,
cacheWithPlay
,
objects
))
{
return
setUp
(
url
,
cacheWithPlay
,
(
File
)
null
,
objects
);
}
@Override
public
boolean
setUp
(
String
url
,
boolean
cacheWithPlay
,
File
cachePath
,
Object
...
objects
)
{
if
(
super
.
setUp
(
url
,
cacheWithPlay
,
cachePath
,
objects
))
{
if
(
objects
!=
null
&&
objects
.
length
>
0
)
{
mTitleTextView
.
setText
(
objects
[
0
].
toString
());
}
if
(
mIfCurrentIsFullscreen
)
{
mFullscreenButton
.
setImageResource
(
R
.
drawable
.
video_shrink
);
}
else
{
...
...
@@ -225,6 +234,9 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
super
.
onClick
(
v
);
int
i
=
v
.
getId
();
if
(
i
==
R
.
id
.
thumb
)
{
if
(!
mThumbPlay
)
{
return
;
}
if
(
TextUtils
.
isEmpty
(
mUrl
))
{
Toast
.
makeText
(
getContext
(),
getResources
().
getString
(
R
.
string
.
no_url
),
Toast
.
LENGTH_SHORT
).
show
();
return
;
...
...
@@ -638,6 +650,13 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
return
gsyBaseVideoPlayer
;
}
/**
* 初始化为正常状态
*/
public
void
initUIState
()
{
setStateAndUi
(
CURRENT_STATE_NORMAL
);
}
private
void
startDismissControlViewTimer
()
{
cancelDismissControlViewTimer
();
DISSMISS_CONTROL_VIEW_TIMER
=
new
Timer
();
...
...
@@ -757,4 +776,17 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
mDialogProgressNormalColor
=
normalColor
;
}
/**
* 是否点击封面可以播放
*/
public
void
setThumbPlay
(
boolean
thumbPlay
)
{
this
.
mThumbPlay
=
thumbPlay
;
}
/**
* 封面布局
*/
public
RelativeLayout
getThumbImageViewLayout
()
{
return
mThumbImageViewLayout
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录