提交 db96af42 编写于 作者: G guoshuyu

添加接口注释

上级 a459aa96
......@@ -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);
......
......@@ -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);
}
......
......@@ -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);
}
......@@ -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.
先完成此消息的编辑!
想要评论请 注册