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


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

     

  • 相关阅读:
    《java网络编程》
    画类图的使用工具----转载
    桌面应用要素
    java桌面应用
    java网络程序
    网络程序
    java中的数据类型
    数据类型要素
    java中的设计模式
    输入一个年龄,判断年龄范围
  • 原文地址:https://www.cnblogs.com/yuhao309/p/9431894.html
Copyright © 2020-2023  润新知