更新时间:2017-11-30 11:38
PCDN支持点播和直播的P2P加速服务,请根据自身需求配置使用点播和直播服务。我们提供的是PCDNSDK.framework,把该文件导入到工程目录下,配置文件中Link该文件即可以使用。
Step 1 需要将PCDNSDK.framework导入到工程中。Step 2 在工程选中Target在General中找到Embedded Binaries项,添加PCDNSDK.framework
Step 3 在工程Target-Build Setting中找到Enable Bitcode项,选择NO,如下图:Step 4 Swift项目在代码添加导入: import PCDNSDKObjective-C项目在代码中添加导入: #import “PCDNSDK/PCDNSDK.h”
Step 5 PCDNSDK为单例模式,PCDNSDK调用类方法sharedInstance创建实例
Step 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服务。
接口
(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:@""];
将普通视频文件URL转换为PCDN服务URL,播放器采用转换之后的URL进行播放,若调用该接口时加速器还没准备好,则会返回传入的原URL地址,以保证不影响原播放体验,下面两个地址转换接口使用其中一个即可。
(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];
(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];
(int)set:(PCDNSDKType)type name_values:(NSString* _Nonnull) name;
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
PCDN_VOD | PCDNSDKType枚举 | 是 | 点播/PCDN_VOD,直播/PCDN_LIVE |
name | NSString | 是 | keyvalue_list(名值对,形式为:key=value&key2=value2) |
(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];
程序退出时调用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];
在文档使用中是否遇到以下问题
更多建议
匿名提交