Skip to content
Franken Zeng edited this page Aug 7, 2017 · 1 revision

API 说明

1. 自定义配置

如下方法自定义配置(需在startServer前设置):

1.1 设置缓存存储位置

proxy.setCacheRoot(fileRoot)

1.2 缓存区大小限制策略

策略包括:

  • 文件个数限制
  • 文件总大小限制

目前这两种策略只能二选一,且策略在每次播放完成或者退出播放时生效。

  • 使用限制文件总大小的策略,默认使用的是该策略,且缓存大小为500M

    proxy.setMaxCacheSize(maxCacheSize)
    
  • 使用限制文件总个数的策略

    proxy.setMaxFilesCount(maxFilesCount)
    

1.3 设置对单个文件大小限制

超过该大小的文件将不被缓存

proxy.setMaxSingleFileSize(long maxSingleFileSize)

1.4 设置不缓存任何文件

proxy.setDisableCache(true)

1.5 状态监听

  • 监听proxy的error

    void registerErrorListener(OnErrorListener onErrorListener)
    
  • 监听某个url对应的缓存进度

   void registerCacheStatusListener(OnCacheStatusListener onCacheStatusListener, String url)

2. Proxy操作

2.1 启动server

void startServer() 

2.2 关闭server

void shutDownServer() 

2.3 恢复下载

启用后台线程对于已缓冲但未完成的文件进行下载,该线程在以下情况下退出:

  • 下载完成
  • server接收到相同url的播放请求
  • shutDownServer方法被调用

如果设置了缓存区文件个数限制,后台下载文件的个数不应超过文件限制

void resumeDownload(String url)

2.4 清除缓存区所有缓存

清除cacheRoot目录下的所有文件及数据库记录

void cleanCaches()

3. 查询操作

3.1 获得播放地址

void getProxyUrl(url, newCache)
  • 对于http flv直播,如果播放器通过接口getProxyUrl( ur)获得播放地址,播放行为是:首次播放,边播放边缓存;以后播放相同url,则是回看缓存好的视频。
  • 而如果播放器通过getProxyUrl(url, newCache)获得播放地址,播放行为是:newCache参数为true,无论是否有url对应的缓存内容,都是播放并缓存新的直播内容。newCache为false,如果有url对应的缓存内容(命中缓存),播放时回看已缓存的直播内容;没有命中的缓存视频(未命中缓存),则播放并缓存新的直播内容。

3.2 删除某个url对于的缓存

void cleanCache(String url)

3.3 查询某个url是否缓存完成

boolean isCached(String url)

3.4 获得缓存区中已缓存完成的文件列表

文件列表包括url和缓存文件

HashMap<String, File> getCachedFileList()

3.5 获得缓存区中缓存未完成的文件列表

文件列表包括url和缓存完成百分比

HashMap<String, Integer> getCachingPercentsList() 

3.6 获取缩略图

Bitmap getCachedFileThumbnail(String url)

获得缓存区已缓存完成的url对应的缩略图, 此调用为耗时操作,当文件较多时建议不要放在主线程中

3.7 下载完成文件查询

获得缓存区已缓存完成的url对应的文件

File getCacheFile(String url)

3.8 获得缓存区路径

File getCacheRoot()