SCDN旗舰版点播下载iOS端SDK
最近更新时间:2018-05-10 18:00:00
SDK概述
海量的玩客云构成了星域CDN的“无限节点”,使得数据流可以分发到离用户更近、网络质量更好的节点。星域点播SDK可以智能选取多个优质节点进行并行传输,让用户获得实时流畅的观看体验。
星域点播SDK内部包含精简的HTTP Server,初始化时会在本地开启HTTP服务,在播放前,开发者需要调用SDK提供的接口重写播放地址,将播放器的请求转向到本地HTTP Server,SDK内部会进行回源策略的调整,在保证播放流畅度的同时尽可能降低开发者的带宽成本。
SDK包构成
开发包中包含了SDK库,说明文档。
星域点播SDK使用C++语言编写,并利用Xcode编译为可供ios开发者调用的静态库,星域点播IOS SDK目录中包含了真机版release版本的framework和集成文档。
工程配置
- 在
xcode
工程目录的相应位置导入libs
下的framework
- 在
build setting
里边设置下Enable Bitcode
设置为NO - 设置完成后导入头文件并添加相应的代码
#import <xyvod_mobile_sdk_ios/xy_vod_sdk_server.h>
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:[[ViewController alloc] init]];
self.viewController = navigationController;
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
[self redirectNSLogToDocumentFolder];
uint64_t t1 = clock_ms();
[xy_vod_sdk_server init];
printf("spend %llu.\n",clock_ms() - t1);
- (void)applicationDidEnterBackground:(UIApplication *)application {
[xy_vod_sdk_server release];
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
[xy_vod_sdk_server init];
}
- 使用sdk需要在播放的url需要调用sdk playUrlRewrite
- (void)enterPlay:(NSString *)url{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *playurl;
if (liveMode == 0){
[defaults setBool:true forKey:@"liveMode"];
playurl = [xy_vod_sdk_server playUrlRewrite:url];
}else {
[defauts setBool:false forKey:@"liveMode"];
playurl = url;
}
[defaults synchronize];
SDK接口列表
接口函数名 | 参数 | 返回值 | 功能描述 |
---|---|---|---|
init | 无 | int (0成功,其他失败) | 初始化SDK,启动本地HTTP服务,应在应用启动时调用 |
release | 无 | int (0成功,其他失败) | 停止HTTP服务,释放SDK占用的资源 |
playUrlRewrite | string(原始播放地址) | string(重定向的播放地址) | 重写视频请求地址 |
注:应用程序切换到后台后,监听的本地端口可能会被操作系统回收,因此可以在应用切后台时调用release,重新激活时再调用一次init,以保证SDK能正常响应播放器请求。
SDK HTTP接口列表
SDK支持文件下载和播放功能,对于两者策略是不同的。为区分请求的文件是下载还是播放,需要在文件的url后面加入参数"xyop=download"。
举例:
文件下载请求:
" http://ntes.u.00cdn.com/p2p/6m.mp4?xyop=download"
文件播放请求:
" http://ntes.u.00cdn.com/p2p/6m.mp4"