Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
NotesChapter
GSYVideoPlayer
提交
db96af42
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,发现更多精彩内容 >>
提交
db96af42
编写于
5月 22, 2018
作者:
G
guoshuyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加接口注释
上级
a459aa96
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
123 addition
and
12 deletion
+123
-12
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoBaseManager.java
...in/java/com/shuyu/gsyvideoplayer/GSYVideoBaseManager.java
+8
-3
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/cache/ICacheManager.java
...in/java/com/shuyu/gsyvideoplayer/cache/ICacheManager.java
+27
-0
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/player/IPlayerManager.java
.../java/com/shuyu/gsyvideoplayer/player/IPlayerManager.java
+30
-2
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/base/GSYVideoViewBridge.java
...m/shuyu/gsyvideoplayer/video/base/GSYVideoViewBridge.java
+58
-7
未找到文件。
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoBaseManager.java
浏览文件 @
db96af42
...
...
@@ -30,6 +30,7 @@ import tv.danmaku.ijk.media.player.IMediaPlayer;
/**
* 基类管理器
* GSYVideoViewBridge接口说明可以查阅GSYVideoViewBridge类
* Created by guoshuyu on 2018/1/25.
*/
...
...
@@ -132,10 +133,10 @@ public abstract class GSYVideoBaseManager implements IMediaPlayer.OnPreparedList
}
/**
*
删除url对应默认缓存文件
*
清除缓存
*
* @param cacheDir
可以为空,空目录清除默认
* @param url
可以为空,空目录清除默认
* @param cacheDir
缓存目录,为空是使用默认目录
* @param url
指定url缓存,为空时清除所有
*/
public
void
clearDefaultCache
(
Context
context
,
@Nullable
File
cacheDir
,
@Nullable
String
url
)
{
if
(
cacheManager
!=
null
)
{
...
...
@@ -408,6 +409,10 @@ public abstract class GSYVideoBaseManager implements IMediaPlayer.OnPreparedList
return
cacheManager
!=
null
&&
cacheManager
.
hadCached
();
}
/**
* 这里只是用于点击时判断是否已经缓存
* 所以每次直接通过一个CacheManager对象判断即可
*/
@Override
public
boolean
cachePreview
(
Context
context
,
File
cacheDir
,
String
url
)
{
return
getCacheManager
(
videoType
).
cachePreview
(
context
,
cacheDir
,
url
);
...
...
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/cache/ICacheManager.java
浏览文件 @
db96af42
...
...
@@ -8,23 +8,50 @@ import java.util.Map;
import
tv.danmaku.ijk.media.player.IMediaPlayer
;
/**
* 缓存管理接口
* Created by guoshuyu on 2018/5/18.
*/
public
interface
ICacheManager
{
/**
* 开始缓存逻辑
*
* @param mediaPlayer 播放内核
* @param url 播放url
* @param header 头部信息
* @param cachePath 缓存路径,可以为空
*/
void
doCacheLogic
(
Context
context
,
IMediaPlayer
mediaPlayer
,
String
url
,
Map
<
String
,
String
>
header
,
File
cachePath
);
/**
* 清除缓存
*
* @param cachePath 可以为空,空时用默认
* @param url 可以为空,空时清除所有
*/
void
clearCache
(
Context
context
,
File
cachePath
,
String
url
);
/**
* 是否缓存管理
*/
void
release
();
/**
* 播放中判断是否缓存,会频繁调用
*/
boolean
hadCached
();
/**
* 播放前判断是否缓存
*/
boolean
cachePreview
(
Context
context
,
File
cacheDir
,
String
url
);
void
setCacheAvailableListener
(
ICacheAvailableListener
cacheAvailableListener
);
/**
* 缓存进度接口
*/
interface
ICacheAvailableListener
{
void
onCacheAvailable
(
File
cacheFile
,
String
url
,
int
percentsAvailable
);
}
...
...
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/player/IPlayerManager.java
浏览文件 @
db96af42
...
...
@@ -19,21 +19,49 @@ public interface IPlayerManager {
IMediaPlayer
getMediaPlayer
();
/**
* 初始化播放内核
*
* @param message 播放器所需初始化内容
* @param optionModelList 配置信息
* @param cacheManager 缓存管理
*/
void
initVideoPlayer
(
Context
context
,
Message
message
,
List
<
VideoOptionModel
>
optionModelList
,
ICacheManager
cacheManager
);
/**
* 设置渲染显示
*/
void
showDisplay
(
Message
msg
);
void
setSpeed
(
float
speed
,
boolean
soundTouch
);
/**
* 是否静音
*/
void
setNeedMute
(
boolean
needMute
);
/**
* 释放渲染
*/
void
releaseSurface
();
/**
* 释放内核
*/
void
release
();
/**
* 缓存进度
*/
int
getBufferedPercentage
();
/**
* 网络速度
*/
long
getNetSpeed
();
/**
* 播放速度
*/
void
setSpeedPlaying
(
float
speed
,
boolean
soundTouch
);
void
setSpeed
(
float
speed
,
boolean
soundTouch
);
}
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/base/GSYVideoViewBridge.java
浏览文件 @
db96af42
...
...
@@ -25,20 +25,39 @@ public interface GSYVideoViewBridge {
void
setLastListener
(
GSYMediaPlayerListener
lastListener
);
/**
* tag和position都是属于标记flag,不参与播放器实际工作,只是用于防止错误等等
*/
String
getPlayTag
();
void
setPlayTag
(
String
playTag
);
int
getPlayPosition
();
void
setPlayPosition
(
int
playPosition
);
/**
* 开始准备播放
*
* @param url 播放url
* @param mapHeadData 头部信息
* @param loop 是否循环
* @param speed 播放速度
* @param cache 是否缓存
* @param cachePath 缓存目录,可以为空,为空时使用默认
*/
void
prepare
(
final
String
url
,
final
Map
<
String
,
String
>
mapHeadData
,
boolean
loop
,
float
speed
,
boolean
cache
,
File
cachePath
);
/**
* 获取当前播放内核
*/
IMediaPlayer
getMediaPlayer
();
/**
* 针对某些内核,缓冲百分比
*/
int
getBufferedPercentage
();
/**
* 是否播放器
*/
void
releaseMediaPlayer
();
void
setCurrentVideoHeight
(
int
currentVideoHeight
);
...
...
@@ -49,23 +68,55 @@ public interface GSYVideoViewBridge {
int
getCurrentVideoHeight
();
/**
* 设置渲染
*/
void
setDisplay
(
Surface
holder
);
void
releaseSurface
(
Surface
surface
);
void
setSpeed
(
float
speed
,
boolean
soundTouch
);
int
getLastState
();
void
setLastState
(
int
lastState
);
/**
* 播放中的url是否已经缓存
*/
boolean
isCacheFile
();
/**
* 是否已经完全缓存到本地,主要用于开始播放前判断,是否提示用户
*
* @param cacheDir 缓存目录,为空是使用默认目录
* @param url 指定url缓存
*/
boolean
cachePreview
(
Context
context
,
File
cacheDir
,
String
url
);
void
clearCache
(
Context
context
,
File
clearCache
,
String
url
);
/**
* 清除缓存
*
* @param cacheDir 缓存目录,为空是使用默认目录
* @param url 指定url缓存,为空时清除所有
*/
void
clearCache
(
Context
context
,
File
cacheDir
,
String
url
);
/**
* 网络速度
*/
long
getNetSpeed
();
/**
* 播放速度修改
*
* @param speed 播放速度
*/
void
setSpeed
(
float
speed
,
boolean
soundTouch
);
/**
* 播放速度修改
*
* @param speed 播放速度
* @param soundTouch
*/
void
setSpeedPlaying
(
float
speed
,
boolean
soundTouch
);
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录