-
Notifications
You must be signed in to change notification settings - Fork 16
Home
mayudong1 edited this page Nov 1, 2017
·
7 revisions
本文档面向所有使用该SDK的开发人员, 测试人员等, 要求读者具有一定的iOS编程开发经验。
金山云iOS HTTPCache SDK可以方便地和播放器进行集成,提供对HTTP视频边播放缓存的功能,缓存完成的内容可以离线工作。
KSY HTTPCache与播放器及视频服务器的关系如下图:
KSY HTTPCache相当于本地的代理服务,使用KSY HTTPCache后,播放器不直接请求视频服务器,而是向KSY HTTPCache请求数据。KSY HTTPCache在代理HTTP请求的同时,缓存视频数据到本地。
它可以很方便的和播放器进行集成,提供以下功能:
- http点播视频边缓存边播放,且播放器可从通过回调得到缓存的进度以及错误码
- 缓存完成的视频,再次点播时可以离线播放,不再请求视频
- 查询缓存已完成的文件列表, 缓存未完成的文件列表
- 清除缓存(清除所有缓存,或删除某个url缓存)
- 提供两种缓存策略供选择(限制缓存区总大小或者限制缓存文件总个数)
- 提供预缓存接口KSYFileDownloader (v1.2.1)
- 使用git下载源码或者从release页面下载zipg格式压缩包后解码
- 打开终端,进入demo目录
- 执行
pod install
命令 - 成功后使用xcode打开新生成的KSYHTTPCacheDemo.xcworkspace工程文件即可编译和运行
本SDK依赖cocopads中的CocoaAsyncSocket,CocoaLumberjack两个库,建议使用pod的方式下载和使用。
在Podfile文件中添加以下语句,执行pod install之后即可将sdk添加入工程
pod 'ksyhttpcache'
- KSYHTTPProxyService类实现了本地HTTP代理,一般在appDelegate中将其启动即可
#import <KSYHTTPCache/KSYHTTPProxyService.h>
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[KSYHTTPProxyService sharedInstance] startServer];
return YES;
}
- 使用getProxyUrl方法获取原始URL经过本地HTTP代理后的URL,之后将代理URL传递给播放器即可实现在播放的同时将文件cache到本地
//get proxy url from ksyhttpcache
NSString *proxyUrl = [[KSYHTTPProxyService sharedInstance] getProxyUrl:@"http://maichang.kssws.ks-cdn.com/upload20150716161913.mp4"];
//init player with proxy url
KSYMoviePlayerController *player = [[KSYMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:proxyUrl]];
//play the video
[player prepareToPlay];
- 监听状态
KSYHTTPCache发生错误时的发送CacheErrorNotification通知KSYHTTPCache缓存进度发送变化时发送CacheStatusNotification通知CacheErrorNotification
注册notification监听CacheStatusNotification
去掉notification监听[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mediaCacheDidChanged:) name:CacheStatusNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:CacheStatusNotification object:nil];
API接口文档在线版
- 主页:金山云
- 邮箱:[email protected]
- QQ讨论群:574179720
- Issues:https://github.com/ksvc/ksyhttpcache_ios/issues