文档章节

iOS开发之集成雄迈视频FunSDK步骤

o
 osc_4nmshwhm
发布于 2018/08/06 18:32
字数 1195
阅读 0
收藏 0

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】部分配置使用说明

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

setTimeout还是setInterval? - setTimeout or setInterval?

问题: As far as I can tell, these two pieces of javascript behave the same way: 据我所知,这两个javascript的行为方式相同: Option A: 选项A: function myTimeoutFunction(){ ......

技术盛宴
今天
8
0
在virtualenv中使用Python 3 - Using Python 3 in virtualenv

问题: Using virtualenv , I run my projects with the default version of Python (2.7). 使用virtualenv ,我使用默认版本的Python(2.7)运行项目。 On one project, I need to use Pyth......

富含淀粉
今天
9
0
Python的__init__和self是做什么的? - What __init__ and self do on Python?

问题: I'm learning the Python programming language and I've came across something I don't fully understand. 我正在学习Python编程语言,遇到了一些我不太了解的东西。 In a method ......

javail
今天
15
0
OSChina 周五乱弹 —— 你大妈还是你大妈

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @watergood:是时候分享一波我的这张纯音乐歌单了,过去的五年多时间里,我陆陆续续地把听到的好听的纯音乐添加了进去,目前一共65首,相信总...

小小编辑
今天
37
0
ftp-ftps-sftp的关系

Ftp FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作...

独钓渔
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部