CDN卓越版直播iOS端SDK

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


SDK概述

海量的赚钱宝和玩客云构成了星域CDN的“无限节点”,使得直播数据流可以分发到离用户更近、网络质量更好的节点。星域直播SDK可以智能选取多个优质节点进行并行传输,并采用冗余编码技术,让用户获得实时流畅的观看体验。

星域直播SDK支持HTTP-FLV,HLS协议,SDK内部包含精简的HTTP Server,初始化时会在本地开启HTTP服务,在播放前,开发者需要调用SDK提供的接口重写播放地址,将播放器的请求转向到本地HTTP Server,SDK内部会进行回源策略的调整,在保证播放流畅度的同时尽可能降低开发者的带宽成本。

SDK包构成

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

zbiOS1

lib目录中包含的静态库libxylivesdk.a支持真机模拟器调试,include目录中xylive_mobile_sdk.h声明了SDK提供的接口。

工程配置

打开工程 -> Build Phases -> Link Binary With Library

将SDK库libxylivesdk.a,以及依赖的第三方库libcrypto.alibssl.alibev4.24.aprotobuf-2.6.1.a静态库引入链接列表

点击列表左下方的add item按钮,将libc++.tbd库加入链接列表

zbiOS2

zbiOS3

在应用启动时,首先调用init接口初始化SDK,在应用退出或进入后台之前,只调用一次init即可。 调用方式如下:

[xylive_mobile_sdk init];

应用程序切换到后台后,监听的本地端口可能会被系统回收,因此需要在app进入后台的通知函数中调用release释放掉占用的资源。

- (void)applicationDidEnterBackground:(UIApplication *)application{
    [xylive_mobile_sdk release];
}

app重新激活到前台时再调用一次init,以保证SDK能正常响应播放器请求。

- (void)applicationWilEnterBackground:(UIApplication *)application{
    [xylive_mobile_sdk init];
}

初始化完毕后,调用getRequestUrl接口重写播放地址,下面的示例中playUrl为原始流地址:

NSString *playUrl = @"http://pullsdk.test.live.00cdn.com/live/steam1.flv";
NSString *rewriteUrl = [xylive_mobile_sdk getReguestUrl:playUrl];

获得重写的播放地址rewriteUrl后,令播放器请求rewriteUrl即可播放。

接口文档

接口函数名 参数 返回值 功能描述
init int(0成功,其他失败) 初始化SDK,启动本地HTTP服务,应在应用启动时调用
release int(0成功,其他失败) 停止HTTP服务,释放SDK占用的资源
getRequestUrl NSString(原始播放地址) NSString(重定向的播放地址) 重写flv请求地址
getSDKVersion NSString(SDK版本号字符串) 获取当前SDK版本号
setLogEnable int int(0成功,其他失败) 设置SDK日志是否开启(0关闭,1开启)
playStreamStop NSString(原始播放地址) int(0成功,其他失败) 播放hls流结束后通知SDK停止缓存任务

SDK依赖的第三方库列表

  1. libev-4.24,网络事件库,SDK基于此库以事件驱动模型开发
  2. openssl 1.0.2h,加解密算法库,SDK基于此库实现HTTPS以及数据校验
  3. cJSON,json格式解析库,SDK以此解析json数据
  4. protobuf-2.6.1,数据序列化库,SDK以此序列化数据与服务器交互