PCDN SDK iOS版手册
本文为您介绍iOS SDK使用说明和操作步骤。
概述
PCDN支持点播和直播的P2P加速服务,请根据自身需求配置使用点播和直播服务。我们提供的是PCDNSDK.framework,把该文件导入到工程目录下,配置文件中链接到该文件即可以使用。
SDK集成步骤
需要将PCDNSDK.framework导入到工程中。
在工程选中Target在General中找到Embedded Binaries项,添加PCDNSDK.framework。
在工程Target-Build Setting中找到Enable Bitcode项,选择NO,如下图。
Swift项目在代码添加导入: import PCDNSDK Objective-C项目在代码中添加导入: #import "PCDNSDK/PCDNSDK.h"。
Step 5PCDNSDK为单例模式,PCDNSDK调用类方法sharedInstance创建实例。
调用start方法示例。
- (IBAction)start { NSArray *sandBoxPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true); NSString *path = sandBoxPaths.lastObject; NSString *clientId = self.clientId_text.text; NSString *pid = @"123"; int result = [[PCDNSDK sharedInstance] start:PCDN_VOD client_id:clientId pid:pid cache_path:path andExarg:nil]; }
接口使用
推荐在App启动的时候即启动PCDN服务,一般不需要主动停止PCDN服务。
1.启动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_VOD | PCDNSDKType枚举 | 是 | 需要启动的加速器类。
|
token | NSString | 是 | |
cache_path | NSString | 是 | 加速器缓存目录的绝对路径。 |
pid | NSString | 否 | App渠道编号,使用渠道编号,可通过云端对不同渠道的App加速器进行统计和控制,若不区分渠道可使用null。 |
exar | NSString | 否 | 可为null,预留扩展参数。 |
返回值
int 0: 启动成功,其它则启动失败。
示例
int result = [[PCDNSDK sharedInstance] start:PCDN_VOD client_id:client pid:pid cache_path:path andExarg:@""];
2.PCDN地址转换
将普通视频文件URL转换为PCDN服务URL,播放器采用转换之后的URL进行播放,若调用该接口时加速器还没准备好,则会返回传入的原URL地址,以保证不影响原播放体验,下面两个地址转换接口使用其中一个即可。
接口1
(NSString* _Nonnull)address:(PCDNSDKType)type url(NSString* _Nonnull)url;
参数
参数 | 类型 | 是否必须 | 说明 |
PCDN_VOD | PCDNSDKType枚举 | 是 | 点播/PCDN_VOD,直播/PCDN_LIVE。 |
url | NSString | 是 | 需要加速的视频文件URL [http://www.alibaba.com/a.mp4]。 |
返回值:NSString
若PCDN正常工作,则返回该URL的PCDN服务地址,若加速器还在启动中或加速器不可用等其他情况,则返回原视频文件URL。
示例
NSString\* url = [[PCDNSDK shareInstance] address:PCDN_VOD** [**url:url**](url:url) **rank:rank];
接口2
(NSString* _Nonnull)address:(PCDNSDKType)type url(NSString* _Nonnull)url rank:(int)rank;
参数
参数 | 类型 | 是否必须 | 说明 |
PCDN_VOD | PCDNSDKType枚举 | 是 | 点播/PCDN_VOD,直播/PCDN_LIVE。 |
url | NSString | 是 | 需要加速的视频文件URL [http://www.alibaba.com/a.mp4]。 |
rank | int | 是 | 0,加速级别。 |
返回值:NSString
若PCDN正常工作则返回该PCDN转换完的URL地址,若加速器还在启动中或加速器不可用等其他情况则返回原URL地址。
示例
NSString* url = [[PCDNSDK shareInstance] address:PCDN_VOD url:url rank:rank];
3.设置接口
(int)set:(PCDNSDKType)type name_values:(NSString* _Nonnull) name;
参数 | 类型 | 是否必须 | 说明 |
PCDN_VOD | PCDNSDKType枚举 | 是 | 点播/PCDN_VOD,直播/PCDN_LIVE。 |
name | NSString | 是 | keyvalue_list(键值对,形式为:key=value&key2=value2)。 |
4.信息获取
(NSString* _Nonnull)get:(PCDNSDKType)type name:(NSString* _Nonnull)name;
参数 | 类型 | 是否必须 | 说明 |
PCDN_VOD | PCDNSDKType枚举 | 是 | 点播/PCDN_VOD,直播/PCDN_LIVE。 |
name | NSString | 是 | 想要获取的信息的key。 |
get接口支持的key,在PCDNSDK.h文件中有定义。
#define VERSION @"version"
#define MAX_UPLOAD_BANDWIDTH @"max-upload-bandwidth"
#define TOTAL_DOWNLOAD_FROM_CDN @"total-download-from-cdn"
#define TOTAL_DOWNLOAD_FROM_P2P @"total-download-from-p2p"
#define TOTAL_UPLOAD_SIZE @"total-upload-size"
示例
NSString *name = @"max-upload-bandwidth"
NSString *result = [[PCDNSDK sharedInstance] get:PCDN_VOD name:name];
5.停止PCDN服务
程序退出时调用stop接口,停止PCDN服务。
需要在生命周期方法applicationWillTerminate中必须调用stop接口。
int stop:(PCDNSDKType)type
参数
参数 | 类型 | 是否必须 | 说明 |
PCDN_VOD | PCDNSDKType枚举 | 是 | 点播/PCDN_VOD,直播/PCDN_LIVE。 |
返回值
int 0:停止成功,-1:停止失败。
示例
int result = [[PCDNSDK sharedInstance] stop:PCDN_VOD];