SCDN极速版点播下载Android端SDK
最近更新时间:2018-05-10 18:00:00
SDK概述
海量的赚钱宝和玩客云构成了星域CDN的“无限节点”,使得数据流可以分发到离用户更近、网络质量更好的节点。星域短视频SDK可以智能选取多个优质节点进行并行传输,让用户获得实时流畅的观看体验。
星域点播SDK内部包含精简的HTTP Server,初始化时会在本地开启HTTP服务,在播放前,开发者需要调用SDK提供的接口重写播放地址,将播放器的请求转向到本地HTTP Server,SDK内部会进行回源策略的调整,在保证播放流畅度的同时尽可能降低开发者的带宽成本。
SDK包构成
开发包中包含了SDK库,说明文档。
星域短视频SDK使用C++语言编写,并利用NDK编译为可供java开发者调用的动态库,libs目录中包含了SDK对于常见CPU指令集的库,onething目录中XYVodSDK.java声明了SDK提供的jni接口。
工程配置
在Android Studio工程中导入SDK包。
如上图所示,
- 导入动态库文件
libxyvodsdk.so
到libs
的中armeabi
,armeabi-v7
目录中。 - 导入jar包文件
XYVodSDK.jar
到libs
中,并在工程配置的build.gradle
中设置引用库的路径。 引用库时在文件头添加:
import com.onething.xyvod.XYVodSDK;
XYVodSDK.jar中定义了以下接口
初始化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秒更新一次(可后台配置)
- 任务下载完成更新
- 任务结束更新,例如请求数据连接断开