开发者社区> 问答> 正文

什么是PCDN SDK Android版手册



概述


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]参数说明

参数类型是否必须说明
contextContext建议使用Application 的Context对象
typeString需要启动的PCDN服务类型,点播:PcdnType.VOD,下载:PcdnType.DOWN,直播:PcdnType.LIVE
tokenString阿里云分配的token
cacheDirString可为null,指定配置文件缓存目录的绝对路径,一般无需指定,默认采用Android/data/包名 /cache/目录,支持系统卸载自动清除。
pidStringAPP渠道编号,使用渠道编号,可通过云端对不同渠道的APP进行统计和控制,若不区分渠道可使用null
extString可为null,预留扩展参数

[backcolor=transparent]返回值 无
[backcolor=transparent]使用示例 PCDNManager.start(this,PCDNType.VOD,"your token", null,null,null);



停止PCDN服务


不建议调用此函数,PCDN服务没有任务的时候不会工作,在后台保持等待。
[backcolor=transparent]方法 PcdnManager.stop(String type)

[backcolor=transparent]参数说明
参数类型是否必须说明
typeString需要停止的PCDN服务类型,点播:PcdnType.VOD,下载:PcdnType.DOWN,直播:PcdnType.LIVE

[backcolor=transparent]返回值 无
[backcolor=transparent]使用示例 PcdnManager.stop(PCDNType.VOD)





地址转换


将普通视频文件URL转换为加速之后的URL,播放器采用加速之后的URL进行播放,若调用该接口时PCDN服务还没准备好,则会返回传入的视频文件URL,以保证不影响原播放体验。
[backcolor=transparent]方法1 PcdnManager.PCDNAddress(String type,String url)

[backcolor=transparent]参数说明
参数类型是否必须说明
typeString点播:PcdnType.VOD,下载:PcdnType.DOWN,直播:PcdnType.LIVE
urlString需要加速的视频文件URL http://www.aliyun.com/a.mp4 —> http://127.0.0.1:8090/a.mp4

[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]参数说明
参数类型是否必须说明
typeString点播:PcdnType.VOD,下载:PcdnType.DOWN,直播:PcdnType.LIVE
urlString需要加速的视频文件URL http://www.aliyun.com/a.mp4 —> http://127.0.0.1:8090/a.mp4
rankint下载速度,默认不限速,默认值为0,限速单位KB/s
extString预留扩展,不需要可传 null

[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]参数说明
参数类型是否必须说明
typeString点播:PcdnType.VOD,下载:PcdnType.DOWN,直播:PcdnType.LIVE

[backcolor=transparent]返回值 String PCDN服务版本号
[backcolor=transparent]使用示例 String pcdnVersion = PcdnManager.getVersion(PCDNType.VOD);



获取信息


[backcolor=transparent]方法 PcdnManager.PCDNGet(String type,String key,String defaultValue)

[backcolor=transparent]参数说明
参数类型是否必须说明
typeString点播:PcdnType.VOD,下载:PcdnType.DOWN,直播:PcdnType.LIVE
keyStringversion 获取PCDN 内核版本号max-upload-bandwidth 上行最大速率(单位KB/s)total-download-from-cdn 从CDN网络下载流量,单位MBtotal-download-from-p2p 从P2P网络下载流量,单位MB total-upload-size 本次生命周内上传总流量,单位MB
defaultValueString未获取到,返回的默认值

[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]参数说明
参数类型是否必须说明
typeString点播:PcdnType.VOD,下载:PcdnType.DOWN,直播:PcdnType.LIVE
[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");

展开
收起
云栖大讲堂 2017-10-30 09:44:16 5315 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android内存泄漏自动化链路分析组件Probe 立即下载
一个跨平台的云服务SDK需要什么 立即下载