本文为您介绍Android SDK使用说明和操作步骤。
概述
PCDN支持点播和直播的P2P加速服务,采用独立进程的方式运行,即使崩溃也不影响App主进程的使用,请根据自身需求配置使用点播、大文件下载和直播服务。
系统版本要求
Android2.3及以上(API>=9)
SDK集成步骤
在工程中,创建libs文件夹,将所需的AAR开发包拷贝到文件中。
在工程的build.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' } }
配置AndroidMainfest.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"/>
SDK使用示例
推荐在Application.OnCreate()中启动PCDN服务,一般不需要Stop。在播放之前使用PCDNAddress()接口去转换播放地址开始播放。PCDNManager负责启动PCDN服务,停止服务,加速地址转换,暂停PCDN服务,恢复PCDN服务,获取版本。
启动PCDN服务
public class MyApplication extends android.app.Application { @Override public void onCreate() { super.onCreate(); PcdnManager.start(this,PcdnType.VOD, "申请的token",null,null,null); } }
下单完成后,您可以登录PCDN控制台,可以在设置模块查询到各终端token。
获取PCDN服务地址
//使用加速功能,必须通过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服务是一个异步过程(耗时大概在50~200ms),所以建议在App启动之后立即启动PCDN服务,以保证在需要使用的时候已经做好加速准备。
方法
PcdnManager.start(Context context,String type,String token,String cacheDir,String pid,String ext)
参数说明
参数 | 类型 | 是否必须 | 说明 |
context | Context | 是 | 建议使用Application的Context对象。 |
type | String | 是 | 需要启动的PCDN服务类型。取值:
|
token | String | 是 | |
cacheDir | String | 否 | 可为null,指定配置文件缓存目录的绝对路径,一般无需指定,默认采用Android/data/包名/cache/目录,支持系统卸载自动清除。 |
pid | String | 否 | App渠道编号,使用渠道编号,可通过云端对不同渠道的App进行统计和控制,若不区分渠道可使用null。 |
ext | String | 否 | 可为null,预留扩展参数。 |
返回值
无。
使用示例
PCDNManager.start(this,PCDNType.VOD,"your token", null,null,null);
停止PCDN服务
不建议调用此函数,PCDN服务没有任务的时候不会工作,在后台保持等待。
方法
PCDNManager.stop(String type)
参数说明
参数 | 类型 | 是否必须 | 说明 |
type | String | 是 | 需要停止的PCDN服务类型。取值:
|
返回值
无。
使用示例
PcdnManager.stop(PCDNType.VOD)
地址转换
将普通视频文件URL转换为加速之后的URL,播放器采用加速之后的URL进行播放,若调用该接口时PCDN服务还没准备好,则会返回传入的视频文件URL,以保证不影响原播放体验。
方法1
PcdnManager.PCDNAddress(String type,String url)
参数说明
参数 | 类型 | 是否必须 | 说明 |
type | String | 是 | PCDN服务类型。取值:
|
url | String | 是 | 需要加速的视频文件URL http://www.aliyun.com/a.mp4 --> http://127.0.0.1:8090/a.mp4。 |
返回值
String若PCDN服务正常工作则返回加速之后的视频文件URL,若还在启动中或不可用等其他情况则返回原视频文件URL。
使用示例
String url = PcdnManager.PCDNAddress(PCDNType.VOD,"your url")**
方法2
String PcdnManager.PCDNAddress(String type ,String url,int rank,String ext)
参数说明
参数 | 类型 | 是否必须 | 说明 |
type | String | 是 | PCDN服务类型。取值:
|
url | String | 是 | 需要加速的视频文件URL http://www.aliyun.com/a.mp4 --> http://127.0.0.1:8090/a.mp4。 |
rank | int | 是 | 下载速度,默认不限速,默认值为0,限速单位KB/s。 |
ext | String | 否 | 预留扩展,不需要可传 null。 |
返回值
String若PCDN服务正常工作则返回加速之后的视频文件URL,若还在启动中或不可用等其他情况则返回原视频文件URL。
使用示例
String url = PcdnManager.PCDNAddress(PCDNType.VOD,"your url","your rank",null)
方法1默认不限速M3U8格式下载,相对路径列表经过地址转换后会返回可直接下载的全路径,不需要再去拼接。 例:原始M3U8列表地址。
#EXT-X-KEY:METHOD=AES-128,URI="/mykey.key",IV=0x000000
#EXTINF:5.051444,
xxx/output0.ts
#EXTINF:5.005011,
xxx/output1.ts
PCDN下载后的M3U8地址。
#EXT-X-KEY:METHOD=AES-128,URI="http://example.aliyundoc.com/mykey.key",IV=0x000000
#EXTINF:5.051444,
http://127.0.0.1:8908/pcdn/s/100/1/aHR0cDov/example.aliyundoc.com/201701/a/xxx/output0.ts
#EXTINF:5.005011,
http://127.0.0.1:8908/pcdn/s/100/2/aHR0cDov/cdn.pcdnv.****.net/201701/a/xxx/output1.ts
使用示例
String pcdnVersion = PcdnManager.getVersion(PCDNType.VOD);
获取信息
方法
PcdnManager.PCDNGet(String type,String key,String defaultValue)
参数说明
参数 | 类型 | 是否必须 | 说明 |
type | String | 是 | PCDN服务类型。取值:
|
key | String | 是 | version获取PCDN内核版本号。
|
defaultValue | String | 是 | 未获取到,返回的默认值。 |
返回值
String获取到的信息。
使用示例
String pcdnVersion = PcdnManager.PCDNGet(PCDNType.VOD,"total-download-from-p2p","default");
设置信息
方法
PcdnManager.PCDNSet(String type,String keyValue)
参数说明
参数 | 类型 | 是否必须 | 说明 |
type | String | 是 | PCDN服务类型。取值:
|
keyValue | String | 是 | 设置格式:"k1=v1&k2=v1",暂时只支持is,ss服务的域名的设置,其key值为pcdn-domain。 |
返回值
int设置成功与否返回值,成功返回0。
使用示例
String pcdnVersion = PcdnManager.PCDNSet(PCDNType.VOD,String "pcdn-domain");
获取版本号
方法
PcdnManager.getVersion (String type)
参数说明
参数 | 类型 | 是否必须 | 说明 |
type | String | 是 | PCDN服务类型。取值:
|
返回值
String PCDN服务版本号。
- 本页导读 (0)