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文件