全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件

PCDN SDK iOS版手册

更新时间:2017-11-30 11:38:52

概述

PCDN支持点播和直播的P2P加速服务,请根据自身需求配置使用点播和直播服务。我们提供的是PCDNSDK.framework,把该文件导入到工程目录下,配置文件中Link该文件即可以使用。


SDK集成步骤

Step 1 需要将PCDNSDK.framework导入到工程中。倒入工程Step 2 在工程选中Target在General中找到Embedded Binaries项,添加PCDNSDK.framework添加framework

Step 3 在工程Target-Build Setting中找到Enable Bitcode项,选择NO,如下图:选择NOStep 4 Swift项目在代码添加导入: import PCDNSDKObjective-C项目在代码中添加导入: #import “PCDNSDK/PCDNSDK.h”

Step 5 PCDNSDK为单例模式,PCDNSDK调用类方法sharedInstance创建实例

Step 6 调用start方法示例

  1. - (IBAction)start {
  2. NSArray *sandBoxPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true);
  3. NSString *path = sandBoxPaths.lastObject;
  4. NSString *clientId = self.clientId_text.text;
  5. NSString *pid = @"123";
  6. int result = [[PCDNSDK sharedInstance] start:PCDN_VOD client_id:clientId pid:pid cache_path:path andExarg:nil];
  7. }


接口使用

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

1.启动PCDN服务

接口

  1. (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枚举 需要启动的加速器类,点播/PCDN_VOD,直播/PCDN_LIVE
token NSString 阿里云分配的token
cache_path NSString 加速器缓存目录的绝对路径
pid NSString APP渠道编号,使用渠道编号,可通过云端对不同渠道的APP加速器进行统计和控制,若不区分渠道可使用null
exar NSString 可为null,预留扩展参数

返回值 int 0: 启动成功,其它则启动失败

示例

  1. int result = [[PCDNSDK sharedInstance] start:PCDN_VOD client_id:client pid:pid cache_path:path andExarg:@""];


2.PCDN地址转换

将普通视频文件URL转换为PCDN服务URL,播放器采用转换之后的URL进行播放,若调用该接口时加速器还没准备好,则会返回传入的原URL地址,以保证不影响原播放体验,下面两个地址转换接口使用其中一个即可。

接口1
  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

示例

  1. NSString\* url = [[PCDNSDK shareInstance] address:PCDN_VOD** [**url:url**](url:url) **rank:rank];


接口2
  1. (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地址

示例:

  1. NSString* url = [[PCDNSDK shareInstance] address:PCDN_VOD url:url rank:rank];

3.设置接口

  1. (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.信息获取

  1. (NSString* _Nonnull)get:(PCDNSDKType)type name:(NSString* _Nonnull)name;
参数 类型 是否必须 说明
PCDN_VOD PCDNSDKType枚举 点播/PCDN_VOD,直播/PCDN_LIVE
name NSString 想要获取的信息的key

get接口支持的key,在PCDNSDK.h文件中有定义:

  1. #define VERSION @"version"
  2. #define MAX_UPLOAD_BANDWIDTH @"max-upload-bandwidth"
  3. #define TOTAL_DOWNLOAD_FROM_CDN @"total-download-from-cdn"
  4. #define TOTAL_DOWNLOAD_FROM_P2P @"total-download-from-p2p"
  5. #define TOTAL_UPLOAD_SIZE @"total-upload-size"

示例:

  1. NSString *name = @"max-upload-bandwidth"
  2. NSString *result = [[PCDNSDK sharedInstance] get:PCDN_VOD name:name];

5.停止PCDN服务

程序退出时调用stop接口,停止PCDN服务。

注意:需要在生命周期方法applicationWillTerminate中必须调用stop接口

  1. int stop:(PCDNSDKType)type

参数

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

返回值

int 0:停止成功,-1:停止失败

示例

  1. int result = [[PCDNSDK sharedInstance] stop:PCDN_VOD];
本文导读目录