1、打开雄迈官方网站:https://open.xmeye.net
2、进入后台,创建应用,获取uuid、AppKey、AppSecret和moveCard四个值。
注册成为开发者 —》 完善资料 —》 添加应用App —》等待审核 —》 开始与测试
3、下载SDK:开放平台 —》资源中心 —》下载中心 —》FunSDK —》下载IOS版
4、导入SDK
【1】SDK文件说明
FunSDK.framework
【2】在工程中导入雄迈第三方库,添加系统依赖库
FunSDK.framework、OpenAL.framework、libresolv、libiconv、libbz2、libz
【3】在工程中Build Setting配置参数
1、Build Active Architure Only :YES
2、Enable Bitode :NO
3、Enable Testability:NO
4、Other Linker Flags :-ObjC
5、C Language Dialect : Compiler Default
6、C++ Language Dialect :Compiler Default
7、C++ Standard Library : Compiler Default
8、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文件。
5、基本功能执行
【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集成接口就能实现报警推送功能。(没有上传证书,推送功能无效)
6、接口说明
【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】部分配置使用说明