CDN卓越版点播下载iOS端SDK

最近更新时间:2018-05-10 18:00:00


SDK概述

海量的玩客云构成了星域CDN的“无限节点”,使得数据流可以分发到离用户更近、网络质量更好的节点。星域点播SDK可以智能选取多个优质节点进行并行传输,让用户获得实时流畅的观看体验。
星域点播SDK内部包含精简的HTTP Server,初始化时会在本地开启HTTP服务,在播放前,开发者需要调用SDK提供的接口重写播放地址,将播放器的请求转向到本地HTTP Server,SDK内部会进行回源策略的调整,在保证播放流畅度的同时尽可能降低开发者的带宽成本。

SDK包构成

开发包中包含了SDK库,说明文档。

dbxzios1

星域点播SDK使用C++语言编写,并利用Xcode编译为可供ios开发者调用的静态库,星域点播IOS SDK目录中包含了真机版release版本的framework和集成文档。

工程配置

  1. xcode工程目录的相应位置导入libs下的framework
  2. build setting里边设置下Enable Bitcode设置为NO
  3. 设置完成后导入头文件并添加相应的代码

#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];
}
  1. 使用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"