本文为您介绍iOS SDK使用说明和操作步骤。

概述

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

SDK集成步骤

  1. 需要将PCDNSDK.framework导入到工程中。
  2. 在工程选中Target在General中找到Embedded Binaries项,添加PCDNSDK.framewo。
  3. 在工程Target-Build Setting中找到Enable Bitcode项,选择NO,如下图。
  4. Swift项目在代码添加导入: import PCDNSDK Objective-C项目在代码中添加导入: #import "PCDNSDK/PCDNSDK.h"。
  5. Step 5PCDNSDK为单例模式,PCDNSDK调用类方法sharedInstance创建实例。
  6. 调用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枚举 需要启动的加速器类。
  • 点播
  • PCDN_VOD,直播
  • PCDN_LIVE
token NSString 阿里云分配的token
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];