概述
PCDN支持点播和直播的P2P加速服务,采用独立进程的方式运行,即使崩溃也不影响APP主进程的使用,请根据自身需求配置使用点播和直播服务
[backcolor=transparent]系统版本要求Android2.3及以上(API>=9)
SDK集成步骤
Step 1 引用开发包
在工程中,创建libs文件夹,将所需的aar开发包拷贝到文件中。
在工程的bulid.gradle中,添加对aar开发的引用。
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
compile(name: 'pcdn-phone-1.0.5', ext: 'aar')
}
defaultConfig {
........
ndk {
// SDK提供如下支持的 SO 库构架,您可以根据自己应用实际支持的情况来设置
abiFilters 'armeabi','armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
}
Step 2 配置AndroidManifest.xml
配置权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
配置Service
<!-- 配置对应服务Service PcdnVodService:点播/下载,PcdnLiveService:直播-->
<service android:name="com.edge.pcdn.PcdnVodService"
android:process=":PcdnVodService"/>
<service android:name="com.edge.pcdn.PcdnLiveService"
android:process=":PcdnLiveService"/>
Step 3 基于示例使用SDK
推荐在Application.OnCreate()中启动PCDN服务,一般不需要Stop。在播放之前使用PCDNAddress()接口去转换播放地址开始播放。PCDNManager负责启动PCDN服务,停止服务,加速地址转换,暂停PCDN服务,恢复PCDN服务,获取版本。
[backcolor=transparent]启动PCDN服务
public class MyApplication extends android.app.Application {
@Override
public void onCreate() {
super.onCreate();
PcdnManager.start(this,PcdnType.VOD,
"申请的token",null,null,null);
}
}
[backcolor=transparent]地址转换
//使用加速功能,必须通过SDK把地址转换成加速地址
private void onPlay(){
String url ="视频文件URL";
//把视频文件地址转换成PCDN服务地址 http://127.0.0.1:8090/xxxxx
url = PcdnManager.PCDNAddress(PcdnType.VOD,url);
mediaPlayer.play(url);
}
接口使用说明
启动PCDN服务
启动PCDN服务是一个异步过程(耗时大概在50ms),所以建议在APP启动之后立即启动PCDN服务,以保证在需要使用的时候已经做好加速准备。
[backcolor=transparent]方法
PcdnManager.start(Context context,String type,String token,String cacheDir,String pid,String ext)
[backcolor=transparent]参数说明
[backcolor=transparent]返回值 无
[backcolor=transparent]使用示例
PCDNManager.start(this,PCDNType.VOD,"your token", null,null,null);
停止PCDN服务
不建议调用此函数,PCDN服务没有任务的时候不会工作,在后台保持等待。
[backcolor=transparent]方法
PcdnManager.stop(String type)
[backcolor=transparent]参数说明
[backcolor=transparent]返回值 无
[backcolor=transparent]使用示例
PcdnManager.stop(PCDNType.VOD)
地址转换
将普通视频文件URL转换为加速之后的URL,播放器采用加速之后的URL进行播放,若调用该接口时PCDN服务还没准备好,则会返回传入的视频文件URL,以保证不影响原播放体验。
[backcolor=transparent]方法1
PcdnManager.PCDNAddress(String type,String url)
[backcolor=transparent]参数说明
[backcolor=transparent]返回值String 若PCDN服务正常工作则返回加速之后的视频文件URL,若还在启动中或不可用等其他情况则返回原视频文件URL
[backcolor=transparent]使用示例
String url = PcdnManager.PCDNAddress(PCDNType.VOD,"your url")**
[backcolor=transparent]方法2
String PcdnManager.PCDNAddress(String type ,String url,int rank,String ext)
[backcolor=transparent]参数说明
[backcolor=transparent]返回值String 若PCDN服务正常工作则返回加速之后的视频文件URL,若还在启动中或不可用等其他情况则返回原视频文件URL
[backcolor=transparent]使用示例
String url = PcdnManager.PCDNAddress(PCDNType.VOD,"your url","your rank",null)
[backcolor=transparent]注:方法1默认不限速
获取版本号
[backcolor=transparent]方法
PcdnManager.getVersion (String type)
[backcolor=transparent]参数说明
[backcolor=transparent]返回值 String PCDN服务版本号
[backcolor=transparent]使用示例
String pcdnVersion = PcdnManager.getVersion(PCDNType.VOD);
获取信息
[backcolor=transparent]方法
PcdnManager.PCDNGet(String type,String key,String defaultValue)
[backcolor=transparent]参数说明
[backcolor=transparent]返回值 String 获取到的信息
[backcolor=transparent]使用示例
String pcdnVersion = PcdnManager.PCDNGet(PCDNType.VOD,"total-download-from-p2p","default");
设置信息
[backcolor=transparent]方法
PcdnManager.PCDNSet(String type,String keyValue)
[backcolor=transparent]参数说明
[tr=rgb(239, 251, 255)][td]keyValue
String | 是 | 设置格式:”k1=v1&k2=v1”,暂时只支持is,ss服务的域名的设置,其key值为pcdn-domain |
[backcolor=transparent]返回值 int 设置成功与否返回值,成功返回 0
[backcolor=transparent]使用示例
String pcdnVersion = PcdnManager.PCDNSet(PCDNType.VOD,String "pcdn-domain");