iOS開發之集成雄邁視頻FunSDK步驟

一、打開雄邁官方網站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】部分配置使用說明

相關文章
相關標籤/搜索