开发者社区> 问答> 正文

什么是PCDN SDK iOS版手册



概述


PCDN支持点播和直播的P2P加速服务,请根据自身需求配置使用点播和直播服务。我们提供的PCDNSDK是一个点a文件,把该文件导入到工程目录下,配置文件中Link该文件及可以使用。
系统版本要求支持iOS 7及以上。


SDK集成步骤


Step 1 需要将LibPCDNSDK.a、PCDNSDK.h导入到工程中
Step 2 在Build Phases项的Link Binary with Libraies添加LibPCDNSDK.a
Step 3 Swift项目在代码添加导入: import PCDNSDK,Objective-C项目在代码中添加导入: #import "PCDNSDK/PCDNSDK.h"
Step 4 PCDNSDK为单例模式,PCDNSDK调用类方法sharedInstance创建实例
Step 5 调用start方法示例 - (IBAction)start {
    NSArray *sandBoxPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true);
    NSString *path = sandBoxPaths.lastObject;
    NSString *clientId = self.clientId_text.text;
    NSString *pid = @"123";
    NSString *deviceId = @"111";
    int result = [[PCDNSDK sharedInstance] start:PCDN_VOD client_id:clientId pid:pid device_id:deviceId cache_path:path andExarg:nil];
}




接口使用


推荐在APP启动的时候即启动PCDN服务,一般不需要主动停止PCDN服务。

启动PCDN服务


接口 (int)start:(PCDNSDKType)type client\_id:(NSString\* \_Nonnull)client\_id pid:(NSString\* \_Nonnull)pid device\_id:(NSString\* \_Nonnull)device\_id cache\_path:(NSString\* \_Nonnull)cache\_path andExarg:(NSDictionary\* \_Nullable)exarg;

参数

参数类型是否必须说明
PCDN_VODPCDNSDKType枚举需要启动的加速器类,点播/PCDN_VOD,直播/PCDN_LIVE
tokenNSString阿里云分配的token
device_idNSString每台设备的唯一ID
cache_pathNSString加速器缓存目录的绝对路径
pidNSStringAPP渠道编号,使用渠道编号,可通过云端对不同渠道的APP加速器进行统计和控制,若不区分渠道可使用null
exarNSString可为null,预留扩展参数

示例 int result = [[PCDNSDK sharedInstance] start:PCDN_VOD client\_id:client pid:pid  device\_id:device\_id cache\_path:path andExarg:@""];



PCDN地址转换


将普通视频文件URL转换为PCDN服务URL,播放器采用转换之后的URL进行播放,若调用该接口时加速器还没准备好,则会返回传入的视频文件URL,以保证不影响原播放体验 (NSString\* \_Nonnull)address:(PCDNSDKType)type url(NSString\* \_Nonnull)url rank:(int)rank;

参数
参数类型是否必须说明
PCDN_VODPCDNSDKType枚举点播/PCDN_VOD,直播/PCDN_LIVE
urlNSString需要加速的视频文件URL [http://www.alibaba.com/a.mp4]
rankint加速等级,默认0

返回值:NSString
若PCDN正常工作则返回该url的PCDN服务地址,若加速器还在启动中或加速器不可用等其他情况则返回原视频文件URL
示例 NSString\* url = [[PCDNSDK shareInstance] address:PCDN_VOD** [**url:url**](url:url) **rank:rank];



暂停PCDN服务


暂停PCDN服务,暂停之后使恢用复PCDN服务接口让加速器恢复工作。使用场景,手机从wifi环境切换到3G/4G网络环境,可以暂停PCDN服务调用pause方法。
[backcolor=transparent]注意:在程序切换到后台时必须调用此方法,程序生命周期方法applicationDidEnterBackground调用 int pause:(PCDNSDKType)type

参数
参数类型是否必须说明
PCDN_VODPCDNSDKType枚举点播/PCDN_VOD,直播/PCDN_LIVE

返回值:int 0 暂停成功,-1 暂停失败
示例 int result = [[PCDNSDK sharedInstance] pause:type];



恢复PCDN服务


PCDN服务暂停之后,使用该接口恢复工作,与暂停PCDN服务接口配合使用,恢复wifi环境时调用resume方法。
[backcolor=transparent]注意:在程序切换到前台时必须调用此方法,程序生命周期方法applicationWillEnterForeground调用 int resume:(PCDNSDKType)type

参数
参数类型是否必须说明
PCDN_VODPCDNSDKType枚举点播/PCDN_VOD,直播/PCDN_LIVE

返回值:int 0 恢复成功,-1 恢复失败
示例 int result = [[PCDNSDK sharedInstance] resume:PCDN_VOD];



设置接口


接口 (int)set:(PCDNSDKType)type name\_values:(NSString\* \_Nonnull)name;

参数
参数类型是否必须说明
PCDN_VODPCDNSDKType枚举点播/PCDN_VOD,直播/PCDN_LIVE
nameNSString名值对组成的字符串,例如"a=1 b=2 c=3"

返回值:0 设置成功 -1 设置失败,set接口支持的name
示例 NSString \*name = \@"max-disk-size=250"
int result = [[PCDNSDK sharedInstance] set:PCDN\_VOD name\_values:name];




信息获取


接口 (NSString\* \_Nonnull)get:(PCDNSDKType)type name:(NSString\* \_Nonnull)name;

参数
参数类型是否必须说明
PCDN_VODPCDNSDKType枚举点播/PCDN_VOD,直播/PCDN_LIVE
nameNSString想要获取的信息的key

返回值:NSString*get接口支持name,version 获取PCDN SDK版本号
示例 NSString \*name = \@"cache-size"
NSString \*result = [[PCDNSDK sharedInstance] get:PCDN\_VOD name:name];



停止PCDN服务


程序退出时调用stop接口,停止PCDN服务。
[backcolor=transparent]注意:需要在生命周期方法applicationWillTerminate中必须调用stop接口 int stop:(PCDNSDKType)type

参数
参数类型是否必须说明
PCDN_VODPCDNSDKType枚举点播/PCDN_VOD,直播/PCDN_LIVE

返回值
int 0:停止成功,-1:停止失败
示例 int result = [[PCDNSDK sharedInstance] stop:PCDN_VOD];

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

相关电子书

更多
从 SDK 到编解码:视频直播架构解析 立即下载
跨平台的云服务SDK需要什么 立即下载
一个跨平台的云服务SDK需要什么 立即下载