CDN卓越版点播下载Android端SDK

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


SDK概述

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

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

SDK包构成

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

dbxz1

星域短视频SDK使用C++语言编写,并利用NDK编译为可供java开发者调用的动态库,libs目录中包含了SDK对于常见CPU指令集的库,onething目录中XYVodSDK.java声明了SDK提供的jni接口。

工程配置

在Android Studio工程中导入SDK包。

dbxz2

如上图所示,

  1. 导入动态库文件libxyvodsdk.solibs的中armeabiarmeabi-v7目录中。
  2. 导入jar包文件XYVodSDK.jarlibs中,并在工程配置的build.gradle中设置引用库的路径。 引用库时在文件头添加:
import com.onething.xyvod.XYVodSDK;

XYVodSDK.jar中定义了以下接口

dbxz3

初始化SDK调用INIT接口,在播放前调用SDK接口URL_REWRITE重写播放地址,将SDK返回的URL作为播放器的请求地址即可播放。 在工程的AndroidManifest.xml中设置应用访问网络的权限 <uses-permission android:name="android.permission.INTERNET" />

SDK接口列表

接口函数名 参数 返回值 功能描述
INIT int (0成功,其他失败) 初始化SDK,启动本地HTTP服务,应在应用启动时调用
RELEASE int (0成功,其他失败) 停止HTTP服务,释放SDK占用的资源
URL_REWRITE string(原始播放地址) string(重定向的播放地址) 重写视频请求地址
GET_INFO string(重新向后播放地址) string(单源多源流量统计字符串json格式) 返回对应任务的CDN流量和Peer流量,单位Byte

SDK HTTP接口说明

SDK支持文件下载和播放功能,对于两者策略是不同的。为区分请求的文件是下载还是播放,需要在文件的url后面加入参数“xyop=download”。

举例: 文件下载请求:
" http://ntes.u.00cdn.com/p2p/6m.mp4?xyop=download"

文件播放请求:
" http://ntes.u.00cdn.com/p2p/6m.mp4"

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”,
	“down_cdn”: 123456,
	“down_peer”: 654321
}

字段说明:

  • down_cdn 从CDN获取的流量,单位bytes
  • down_peer 从赚钱宝、玩客云节点获取的流量,单位bytes

任务的流量信息更新时机:

  • 30秒更新一次(可后台配置)
  • 任务下载完成更新
  • 任务结束更新,例如请求数据连接断开