美文网首页
iOS海康SDK集成使用2018-01-23

iOS海康SDK集成使用2018-01-23

作者: cocoaZ | 来源:发表于2018-01-23 16:27 被阅读1117次

一、demo运行

问题:demo运行报错

解决办法:

1.将项目调成release模式

2.用真机测试

二、sdk运行

集成步骤:

1.将hcnetsdk.h、libAudioEngine_64.a、libcrypto.a、libHCCore.a、libHCNetSDK.a、libPlayCtrl.a、libssl.a、libSystemTransform.a 这八个文件导入项目中

2.在Targets ->Build Phases->Link Binary With Libraries 中导入一下显示的库文件

3.Targets ->Build Settings->Enable Bitcode 选择NO,如下图

4.头文件是C++语法的,所以程序中凡是有包含这个头文件的文件,后缀都要改成.mm

5.Architectures选择Standard(armv7,arm64),Architectures选择Standard(armv7,arm64)

6.Apple LLVMxxx-Language-C++如果选择C++11也可以支持,但是需要引入libstdc++.6.0.9.tbd的库。

 7.我们IOS SDK是不用ARC的,如果程序工程启用ARC,所有指针类型的参数需要用(__bridge void*)强制转换一下。

8.使用DeviceInfo.h、DeviceInfo.m、IOSPlayM4.h、MobilePlaySDKInterface.h、Preview.h、Preview.mm文件

9.Preview.mm两个报错

(1)问题:Assigning to 'HWND' (aka 'void *') from incompatible type 'UIView *__strong’

解决办法:        struPreviewInfo.hPlayWnd=pView; 改成  struPreviewInfo.hPlayWnd= (__bridgeHWND)pView;

(2)问题No matching function for call to 'PlayM4_Play'

解决办法:

if(!PlayM4_Play(pHandle->iPlayPort,pHandle->pView))  改为if(!PlayM4_Play(pHandle->iPlayPort,(__bridgePLAYM4_HWND)pHandle->pView))

这样就可以运行了,

使用sdk方法使用顺序

1.初始化

BOOLbRet =NET_DVR_Init();

   if(!bRet)

    {

       NSLog(@"初始化失败!");

    }

2.登录(需要参数:ip、端口号、用户名、密码,用户名、密码是激活摄像机时设置的)

NET_DVR_DEVICEINFO_V30logindeviceInfo = {0};//登录返回数据

m_lUserID=NET_DVR_Login_V30((char*)[deviceInfo.chDeviceAddrUTF8String],

                                deviceInfo.nDevicePort,

                                (char*)[deviceInfo.chLoginNamecStringUsingEncoding:enc],

                                (char*)[deviceInfo.chPassWordUTF8String],

                                &logindeviceInfo);

3.播放(需要参数:userID、&struPreviewInfo,这两个值都是登录成功之后返回的)

g_structHandle[iIndex].iPreviewID=NET_DVR_RealPlay_V40(iUserID, &struPreviewInfo,NULL,NULL);

4.暂停播放(需要参数:预览句柄)

NET_DVR_StopRealPlay(g_structHandle[iIndex].iPreviewID)

相关文章

网友评论

      本文标题:iOS海康SDK集成使用2018-01-23

      本文链接:https://www.haomeiwen.com/subject/yvwsaxtx.html