作者:乐土网6868 | 来源:互联网 | 2023-07-22 14:12
金山云android平台http缓存SDK,可轻易地与播放器集成,完成http视频边播放边下载(缓存)功用。ksyunhttpcachesdkforandroid,it’seasy
金山云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要求的同时,缓存视频数据到当地。
2.功用申明
它能够很轻易的和播放器举行集成,供应以下功用: 1. http点播视频边缓存边播放,且播放器可从经由过程回调取得缓存的进度以及错误码
1.缓存完成的视频,再次点播时能够离线播放,不再要求视频server
2.查询已完成的文件列表( 展现缩略图,url), 未完成的文件列表(缓存进度,url)
3.消灭缓存(消灭一切缓存,或删除某个url缓存)
4.供应两种缓存战略供挑选(限定缓存区总大小或许限定缓存文件总个数
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将采纳默许设置。可采纳以下要领自定义设置(需在startServer前设置):
设置缓存存储位置 proxy.setCacheRoot(fileRoot)
缓存区大小限定战略(文件个数限定、文件总大小限定),现在这两种战略只能二选一,且战略在每次播放完成或许退出播放时见效。
运用限定文件总大小的战略,默许运用的是该战略,且缓存大小为500M
proxy.setMaxCacheSize(maxCacheSize)
运用限定文件总个数的战略
proxy.setMaxFilesCount(maxFilesCount)
设置对单个文件大小限定,凌驾该大小的文件将不被缓存
proxy.setMaxSingleFileSize(long maxSingleFileSize)
设置不缓存任何文件
proxy.setDisableCache(true)
状况监听
监听proxy的error
void registerErrorListener(OnErrorListener onErrorListener)
监听某个url对应的缓存进度
void registerCacheStatusListener(OnCacheStatusListener onCacheStatusListener, String url)
4.其他接口申明
void getProxyUrl(url, newCache)
取得播放地点
关于http flv直播,假如播放器经由过程接口getProxyUrl( ur)取得播放地点,播放行动是:初次播放,边播放边缓存;今后播放雷同url,则是回看缓存好的视频。
而假如播放器经由过程getProxyUrl(url, newCache)取得播放地点,播放行动是:newCache参数为true,不管是不是有url对应的缓存内容,都是播放并缓存新的直播内容。newCache为false,假如有url对应的缓存内容(掷中缓存),播放 时回看已缓存的直播内容;没有掷中的缓存视频(未掷中缓存),则播放并缓存新的直播内容。
void startServer()
启动server
void shutDownServer()
封闭server
void cleanCaches()
消灭缓存区一切缓存(cacheRoot目录下的一切文件及数据库纪录)
void cleanCache(String url)
删除某个url关于的缓存
boolean isCached(String url)
查询某个url是不是缓存完成
HashMap getCachedFileList()
取得缓存区中已缓存完成的文件列表(url和缓存文件)
HashMap getCachingPercentsList()
取得缓存区中缓存未完成的文件列表(url和缓存完成百分比)
void resumeDownload(String url)
启用背景线程关于已缓冲但未完成的文件举行下载,该线程在以下情况下退出:
下载完成
server接收到雷同url的播放要求
shutDownServer要领被挪用
假如设置了缓存区文件个数限定,背景下载文件的个数不该凌驾文件限定
Bitmap getCachedFileThumbnail(String url)
取得缓存区已缓存完成的url对应的缩略图, 此挪用为耗时操纵,当文件较多时发起不要放在主线程中
File getCacheFile(String url)
取得缓存区已缓存完成的url对应的文件
File getCacheRoot()
取得缓存区途径
void setEnableStatModule(boolean enableStatModule)
设置日记模块的开关,默许为开启日记
void registerLogEventListener(OnLogEventListener onLogEventListener)
注册日记监听接口,当日记模块被开启时,OnLogEventListener将监听到HTTPCache的日记
5.其他文档
请见wiki
6.反应与发起
答疑:金山云视频云客户端SDK答疑专区
邮箱:zengfanping@kingsoft.com
QQ议论群:574179720
release:https://github.com/ksvc/ksyht…