CDN共享版直播Android端SDK

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


SDK概述

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

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

SDK包构成

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

zband1

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

工程配置

本示例使用了VLC播放器, 作为调用SDK接口,该播放器与其他的播放器相似。

在Android Studio工程中导入SDK包。

zband2

如上图所示,

  1. 导入动态库文件libxylivesdk.solibs的中armeabiarmeabi-v7目录中。
  2. 导入jar包文件xyLiveSDK.jarlibs中。 将SDK动态库导入工程,并在工程配置的build.gradle中设置引用库的路径。

zband3

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

zband4

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

zband5

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

zband6

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

zband7

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能正常响应播放器请求。