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