ksvc / ksyhttpcache_android

金山云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.
Apache License 2.0
87 stars 23 forks source link

金山云Android HTTPCache SDK

金山云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.

1. 产品概述

金山云Android HTTPCache SDK可以方便地和播放器进行集成,提供对HTTP视频边播放缓存的功能,缓存完成的内容可以离线工作。

KSY HTTPCache与播放器及视频服务器的关系如下图:

KSY HTTPCache相当于本地的代理服务,使用KSY HTTPCache后,播放器不直接请求视频服务器,而是向KSY HTTPCache请求数据。KSY HTTPCache在代理HTTP请求的同时,缓存视频数据到本地。

2.功能说明

它可以很方便的和播放器进行集成,提供以下功能:

  1. http点播视频边缓存边播放,且播放器可从通过回调得到缓存的进度以及错误码

  2. 缓存完成的视频,再次点播时可以离线播放,不再请求视频server

  3. 查询已完成的文件列表( 展示缩略图,url), 未完成的文件列表(缓存进度,url)

  4. 清除缓存(清除所有缓存,或删除某个url缓存)

  5. 提供两种缓存策略供选择(限制缓存区总大小或者限制缓存文件总个数

3. 集成说明

下载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将采用默认配置。

4. 使用

请阅读API使用指南

5.其他文档

请见wiki

6.反馈与建议