一、打开雄迈官方网站:https://open.xmeye.netc++
二、进入后台,建立应用,获取uuid、AppKey、AppSecret和moveCard四个值。api
注册成为开发者 —》 完善资料 —》 添加应用App —》等待审核 —》 开始与测试服务器
三、下载SDK:开放平台 —》资源中心 —》下载中心 —》FunSDK —》下载IOS版app
四、导入SDKtcp
【1】SDK文件说明ide
FunSDK.framework函数
【2】在工程中导入雄迈第三方库,添加系统依赖库测试
FunSDK.framework、OpenAL.framework、libresolv、libiconv、libbz二、libz网站
【3】在工程中Build Setting配置参数ui
一、Build Active Architure Only :YES
二、Enable Bitode :NO
三、Enable Testability:NO
四、Other Linker Flags :-ObjC
五、C Language Dialect : Compiler Default
六、C++ Language Dialect :Compiler Default
七、C++ Standard Library : Compiler Default
八、Preprocessor Macros : Debug:DEBUG=1 OS_IOS=1 FORMAL=1
Release :OS_IOS=1 FORMAL=1
【4】添加其它系统依赖库
AVKit、AssetsLibrary、UserNotification、AudioToolBox、CoreMedia、OpenAL、MediaPlayer、AVFoundation、OpenGLES、GLKit、VideoToolbox、 libz.tbd、libstdc++.6.0.9.tbd、libz2.tbd、libresolv.tbd
【5】注意:若是须要集成鱼眼设备的用户,能够添加鱼眼库libvrsoft.a。因为维迈所提供的FunSDK是C++混编的,so 须要对工程中全部须要本类,以及方法的地方都需支持C++。将须要用到FunSDK的.m文件直接重命名为.mm文件。
五、基本功能执行
【1】FunSDK初始化
a> 库初始化1 : Fun_Init();
b> 库初始化2: Fun_InitNetSDK();
c> 设置App文件存储路径
d> 设置本地登陆, AP模式登陆及P2P模式登陆的参数
-(void)initFunSDK{
SInitParam pa;
pa.nAppType = H264_DVR_LOGIN_TYPE_MOBILE;
//库初始化
FUN_Init(0, &pa);
//后台参数
NSString *uuid = @"jufeng";
NSString *appkey = @"a16ea8f9d5164d1d830e8dbc66a71e24";
NSString *appSecret = @"672f645441b14a259356d027a6b8853f";
int moveCard = 5;
//注册api
//NSString* strAppKey = @"6356f3673b134e53983798cfb7a0adf3";
//NSDictionary *infoDictionary = [[NSBundle mainBundle]infoDictionary];
//NSString *strUuid = [infoDictionary objectForKey:@"CFBundleIdentifier"];
//FUN_RegistAPI([strAppKey UTF8String], [strUuid UTF8String]);
//错误码初始化
FUN_InitNetSDK();
//初始化云平台
FUN_XMCloundPlatformInit([uuid UTF8String], [appkey UTF8String], [appSecret UTF8String], moveCard);
//设置用于存储设备信息等的数据配置文件
NSArray *pathArray = NSSearchPathForDirectoriesInDomains(
NSCachesDirectory, NSUserDomainMask, YES
);
NSString *path = [pathArray lastObject];
//设置配置文件存储目录
FUN_SetFunStrAttr(
EFUN_ATTR_CONFIG_PATH, [[path stringByAppendingString:@"/Configs/"] UTF8String]
);
//设置升级文件存储目录
FUN_SetFunStrAttr(
EFUN_ATTR_UPDATE_FILE_PATH,[[path stringByAppendingString:@"/Updates/"] UTF8String]
);
//设置临时文件存储目录
FUN_SetFunStrAttr(
EFUN_ATTR_TEMP_FILES_PATH,[[path stringByAppendingString:@"/Temps/"] UTF8String]
);
//设置本地登陆设备相关信息保存文件的位置
FUN_SysInit(
[[path stringByAppendingString:@"/LocalDevs.db"] UTF8String]
);
//设置AP模式(app直连设备热点)下设置设备信息保存文件位置
FUN_SysInitAsAPModel(
[[path stringByAppendingString:@"/APDevs.db"] UTF8String]
);
//设置云服务
FUN_SysInit(constStrServerAddrs, constIntServerPort);
}
【2】设备登陆
不管是哪一种模式(本地,AP,仍是P2P)登陆登出均采用同一套登陆登出接口,而不一样登陆方式登陆登陆设备只是devid参数不一样;
本地登陆与AP方式登陆devId均填写 为 "ip:port" 的格式。例如设备ip地址为192.168.1.12 设备tcp端口设置为34567(普通设备默认值) 则devid为 "192.168.1.12:34567"。 AP模式,由于设备做为网关,因此devid 通常填写为 "192.168.10.1:34567"这种格式;
P2P方式devid 为设备的序列号;其余须要用到devid参数的接口也是如此;在访问设备以前要先调用设备登陆接口:
int FUN_DevLogin(
UI_HANDLE hUser, const char *szDevId, const char *szUser, const char *szPwd, int nSeq
);
设备登出接口:
int FUN_DevLogout(UI_HANDLE hUser, const char *szDevId);
【3】监控设备视频播放
设备播放实时视频接口:
int MediaRealPlay(
int hUser, String devId, int nChnIndex, int nStreamType, Object hWnd, int nSeq
);
设备播放视频中止接口:
int MediaStop(int hPlayer, int nSeq = 0);
参数说明:
参数1 hUser 为接口调用结果返回消息接收者,参数2 devId 为 设备id(同登陆登出)。参数3 nChnIndex 为通道号,从0开始。 参数4 nStreamType 为码流类型 0-主码流(高分辨率)1-副码流(低分辨率),参数5 hWnd 为视频显示view指针。 返回值为 播放器句柄hPlayer;
【4】设备报警消息
开放平台登陆后,进入控制台页面,IOS证书上传,请按照要求上传IOS的推送证书。后台会添加证书到服务器,而后按照demo集成接口就能实现报警推送功能。(没有上传证书,推送功能无效)
六、接口说明
【1】调用流程
Start —》FunSDK.init() —》FunSDK.RegWnd() —》FunSDK.xxx()其它接口 —》代理方法OnFunSDKResult函数打印回调结果 —》FunSDK.UnRegWnd() —》FunSDK.UnInit()
【2】库方法
初始化、反初始化、初始化服务(本地登陆)、初始化服务(AP模式)、初始化服务(云登陆)、初始化服务(错误码)、反初始化服务(错误码)、初始化app证书、初始化服务器ip和port
【3】系统功能方法
【4】设备功能方法
【5】媒体功能方法
【6】日志功能方法
【7】报警功能方法
【8】广告功能方法
【9】语言功能方法
【10】JPEG转MP4方法
【11】云存储功能方法
【12】DSS服务相关方法
【13】媒体文件编译方法
【14】枚举及结构体
【15】错误码说明
【16】部分配置使用说明