金山云android平台http缓存SDK,可方便地与播放器集成,实现http视频边播放边下载(缓存)功能。ksyun http cache sdk for android, it's easy to integrated with media players to provide caching capability when watching http videos.
金山云Android HTTPCache SDK可以方便地和播放器进行集成,提供对HTTP视频边播放缓存的功能,缓存完成的内容可以离线工作。
KSY HTTPCache与播放器及视频服务器的关系如下图:
KSY HTTPCache相当于本地的代理服务,使用KSY HTTPCache后,播放器不直接请求视频服务器,而是向KSY HTTPCache请求数据。KSY HTTPCache在代理HTTP请求的同时,缓存视频数据到本地。
它可以很方便的和播放器进行集成,提供以下功能:
http点播视频边缓存边播放,且播放器可从通过回调得到缓存的进度以及错误码
缓存完成的视频,再次点播时可以离线播放,不再请求视频server
查询已完成的文件列表( 展示缩略图,url), 未完成的文件列表(缓存进度,url)
清除缓存(清除所有缓存,或删除某个url缓存)
提供两种缓存策略供选择(限制缓存区总大小或者限制缓存文件总个数
下载libs目录下的jar包导入工程
为了保证正常工作,推荐一个app只使用一个KSYProxyService实例,例如:
public class App extends Application {
private KSYProxyService proxy;
public static KSYProxyService getProxy(Context context) {
App app = (App) context.getApplicationContext();
return app.proxy == null ? (app.proxy = app.newProxy()) : app.proxy;
}
private KSYProxyService newProxy() {
return new KSYProxyService(this);
}
}
proxy与播放器的集成如下所示: 对于点播,播放器通过getProxyUrl接口获得播放地址,进行播放。 对于直播,则可通过getProxyUrl(url, newCache)接口获得播放地址,并通过参数newCache控制播放和缓存的行为。详情请见下方接口说明。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
HttpProxyCacheServer proxy = getProxy();
proxy.startServer();
String proxyUrl = proxy.getProxyUrl(VIDEO_URL);
mediaPlayer.setVideoPath(proxyUrl);
}
使用以上方法,proxy将采用默认配置。
请阅读API使用指南
请见wiki
主页:金山云
QQ讨论群: