Page History

Video_cache_api

Last edited by 谷俊

视频缓存API说明

一、自定义配置

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

1.1 设置缓存存储位置

proxyService.setCacheRoot(fileRoot)

1.2 缓存区大小限制策略

策略包括:

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

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

  • 使用限制文件总大小的策略,默认使用的是该策略,且缓存大小为500M
proxyService.setMaxCacheSize(maxCacheSize)
  • 使用限制文件总个数的策略
proxyService.setMaxFilesCount(maxFilesCount)

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

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

proxyService.setMaxSingleFileSize(long maxSingleFileSize)

1.4 设置不缓存任何文件

proxyService.setDisableCache(true)

2. 状态监听

  • 监听proxy的error
void registerErrorListener(OnErrorListener onErrorListener)
  • 监听某个url对应的缓存进度
void registerCacheStatusListener(OnCacheStatusListener onCacheStatusListener, String url)
  • 监听proxy的log
void registerLogEventListener(OnLogEventListener onLogEventListener)

二、Proxy操作

1. 启动server

void startServer() 

2. 关闭server

void shutDownServer() 

3. 清除缓存区所有缓存

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

void cleanCaches()

三、查询操作

1. 获得播放地址

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

2. 删除某个url对于的缓存

void cleanCache(String url)

3. 查询某个url是否缓存完成

boolean isCached(String url)

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

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

HashMap<String, File> getCachedFileList()

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

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

HashMap<String, Integer> getCachingPercentsList() 

6. 获取缩略图

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

Bitmap getCachedFileThumbnail(String url)

7. 下载完成文件查询

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

File getCacheFile(String url)

8. 获得缓存区路径

File getCacheRoot()