C/C++ SDK

最近更新时间:2018-11-07 12:00:00

版本:1.0.2

适用系统: linux x86_64 2.6及以上

概述:

SDK采用c/c++语言开发,可以跨Linux 2.6及以上系统。 SDK内部包含精简的HTTP Server,初始化时会在本地开启HTTP服务,在下载文件前,开发者需要调用SDK提供的接口重写下载地址,将下载的请求转向到本地HTTP Server,SDK内部会进行策略的调整,尽可能降低开发者的带宽成本。

初始化SDK:

在使用SDK时,您必须先使用 XY_SDK_INIT 接口进行初始化,并传入用户身份凭证 AK/SK[^footnote]。


各接口使用说明

int XY_SDK_INIT( const char* ak,const char* sk);

参数说明:ak/sk 用户身份凭证
返回值:0 —— 成功,-1 —— 失败
功能说明:初始化 SDK,启动本地HTTP服务,应在应用启动时调用,http服务启动失败返回-1

void XY_SDK_RELEASE();

参数说明:无参数
返回值:无
功能说明:停止 HTTP 服务,释放 SDK 占用的资源

int XY_SDK_REWRITE(const char* url, char* rewrite, uint32_t rewrite_len);

参数说明:
url:传入原始播放地址
rwrite:传入 buffer,用于写入重定向后的播放地址
rwrite_len:传入 buffer 大小,至少要比传入播放地址长度大20bytes
返回值:0 —— 成功,其他 —— 失败
功能说明:重写视频请求地址,如果url格式不正确(例如不以“http://”开头)返回非0

void XY_SDK_VERSION(char* ver, unsigned int ver_len);

参数说明:
ver:传入 buffer,用于写入版本号
ver_len:传入 buffer 大小,至少20bytes
返回值:无返回值
功能说明:返回 SDK 版本号,格式一般为 X.X.X

int XY_SDK_GET_INFO(const char* url, char* info, uint32_t info_len);

参数说明:
url:传入请求地址
info:传入 buffer,用于写入流量、速率信息
info_len:传入 buffer大小
返回值:实际写入buffer大小
功能说明:获取对应url的流量信息和速率信息,具体见下面说明

void XY_STOP_TASK(const char* url);

参数说明:
url:原始播放地址或重定向播放地址皆可
返回值:无返回值
功能说明:停止对应任务,即使不调用接口,在请求连接断开后延迟10秒(可配置)自动停止

void XY_SDK_LOG(int enable);

参数说明:
enable:日志开关,1 —— 开启,0 —— 关闭
返回值:无返回值
功能说明:SDK日志默认关闭,此接口用于开启 SDK 日志,方便调试、排查问题等,由于日志量大,上线时不要调用此接口

SDK接口GET_INFO说明

传入参数:” http://127.0.0.1:2017/ntes.u.00cdn.com/p2p/6m.mp4” 或 ” http://127.0.0.1:2017/ntes.u.00cdn.com/p2p/6m.mp4?xyop=download”
返回值JSON格式举例说明:

{
    “url”: “http://ntes.u.00cdn.com/p2p/6m.mp4”,
    “ip”:”1.1.1.1”,
    “down_cdn”: 123456,
    “down_peer”: 654321,
    “down_cdn_speed”: 123,
    “down_peer_speed”: 654
}

字段说明:
  • ip CDN IP地址
  • down_cdn 从CDN获取的流量,单位bytes
  • down_peer 从玩客云节点获取的流量,单位bytes
  • down_cdn_speed CDN实时下载速率,单位bytes/s
  • down_peer_speed 玩客云节点实时下载速率,单位bytes/s

任务的流量信息&实时速率更新时机:
1秒更新一次

示例代码:

C/C++ Demo下载

请查看src文件下的demo.c文件