SCDN旗舰版直播Android端SDK
最近更新时间:2018-05-10 18:00:00
SDK概述
海量的赚钱宝和玩客云构成了星域CDN的“无限节点”,使得直播数据流可以分发到离用户更近、网络质量更好的节点。星域直播SDK可以智能选取多个优质节点进行并行传输,并采用冗余编码技术,让用户获得实时流畅的观看体验。
星域直播SDK支持HTTP-FLV协议,SDK内部包含精简的HTTP Server,初始化时会在本地开启HTTP服务,在播放前,开发者需要调用SDK提供的接口重写播放地址,将播放器的请求转向到本地HTTP Server,SDK内部会进行回源策略的调整,在保证播放流畅度的同时尽可能降低开发者的带宽成本。
SDK包构成
开发包中包含了SDK库,说明文档。

星域直播SDK使用C++语言编写,并利用NDK编译为可供java开发者调用的动态库,libs目录中包含了SDK对于常见CPU指令集的库,onething目录中XYLiveSDK.java声明了SDK提供的jni接口。
工程配置
本示例使用了VLC播放器, 作为调用SDK接口,该播放器与其他的播放器相似。
在Android Studio工程中导入SDK包。

如上图所示,
- 导入动态库文件
libxylivesdk.so到libs的中armeabi,armeabi-v7目录中。 - 导入jar包文件
xyLiveSDK.jar到libs中。 将SDK动态库导入工程,并在工程配置的build.gradle中设置引用库的路径。

xyLiveSDK.jar中定义了以下jni接口。

在播放器中引入SDK包并在onCreate中调用init接口初始化SDK。

在播放前调用SDK接口playUrlRewrite重写播放地址,将SDK返回的URL作为播放器的请求地址即可播放。

在工程的AndroidManifest.xml中设置应用访问网络的权限
<uses-permission android:name="android.permission.INTERNET" />

SDK接口列表
| 接口函数名 | 参数 | 返回值 | 功能描述 |
|---|---|---|---|
| init | 无 | int (0成功,其他失败) | 初始化SDK,启动本地HTTP服务,应在应用启动时调用 |
| release | 无 | int (0成功,其他失败) | 停止HTTP服务,释放SDK占用的资源 |
| playUrlRewrite | string(原始播放地址) | string(重定向的播放地址) | 重写flv请求地址 |
| getVersion | 无 | string(SDK版本号) | 获取SDK当前版本号 |
| networkChanged | 无 | int (0成功,其他失败) | 网络状态变更,通知SDK重新解析缓存的域名 |
| getInfoString | 无 | string(单源多源流量统计字符串json格式) | 返回距离上一次调用该函数间的单源和多源流量统计数据 |
| setLogEnable | int(0或1) | int (0成功,其他失败) | 设置SDK日志开启或关闭 |
注:应用程序切换到后台后,监听的本地端口可能会被操作系统回收,因此可以在应用重新激活时再调用一次init,以保证SDK能正常响应播放器请求。

