iOS开发实时监控SDK的设置
2016-08-16 17:15
465 查看
iOS开发实时监控SDK的设置
*本文中涉及的实时监控为“维迈开放平台” 相关API,硬件设备为“金盛安防”监控摄像头(https://open.xmeye.net)根据官方文档以及demo,小编将自己的使用心得总结如下;*
主要功能:实现摄像头监控画面的实时播放;
开发步骤:
由于维迈所提供的FunSDK是C++混编的,so 需要对工程中所有需要本类,以及方法的地方都需支持C++。
将需要用到FunSDK的.m文件直接重命名为.mm文件
导入第三方库: 【OpenAL.framework】【 libresolv】【libiconv】【libbz2】【libz】最后还需要一个【libstdc++.6.0.9】支持C++混编的
将FunSDK.framework文件拖入工程
工程编辑,在appdelegate.mm中引入
#import <FunSDK/FunSDK.h> #import <iostream> using namespace std;
6 声明两个常量
const static char* constStrServerAddrs = "223.4.33.127;54.84.132.236;112.124.0.188"; const static short constIntServerPort = 15010;
7 添加方法,并且在didFinishLaunchingWithOptions:中调用
[self FunSDKSetting];
8.设置方法
- (void)FunSDKSetting{ SInitParam pa; pa.nAppType = H264_DVR_LOGIN_TYPE_MOBILE; FUN_Init(0, &pa); FUN_InitNetSDK(); //设置用于存储设备信息等的数据配置文件 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); }
9.此时FunSDK的初始化基本设置完成,现在在控制器中设置如下(ViewController)注意后面的都需要C++混编的所以要将.m文件重命名为.mm;
10.现在开始正式设置播放实时监控的界面,先新定义一个继承于UIView的子类
.h
#import <UIKit/UIKit.h> @interface DisplayView : UIView @end
.mm
#import "DisplayView.h" @implementation DisplayView +(Class) layerClass{ return [CAEAGLLayer class]; } @end
11.在需要展现视频的控制器中
.mm
#import <FunSDK/FunSDK.h> #import "DisplayView.h" @interface ViewController () { int _myHandle; //播放窗口 DisplayView* _playView; //播放视图 } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _myHandle = FUN_RegWnd((__bridge void*)self); FUN_SysGetDevState(FUN_RegWnd((void*)CFBridgingRetain(self)), [@"0d41f49b736ae04d" UTF8String]); self.view.backgroundColor = [UIColor whiteColor]; // 1.0 视频播放界面 _playView = [[DisplayView alloc] initWithFrame:CGRectMake(0, 0,[UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.width-125)]; _playView.center = self.view.center; _playView.backgroundColor = [UIColor orangeColor]; [self.view addSubview:_playView]; UIButton *a = [UIButton buttonWithType:UIButtonTypeSystem]; [a setTitle:@"stop" forState:UIControlStateNormal]; [a addTarget:self action:@selector(stop) forControlEvents:UIControlEventTouchUpInside]; a.frame = CGRectMake(100, 100, 100,10 4000 0); [self.view addSubview:a]; } #pragma mark - SDK 回调 - (void)OnFunSDKResult:(NSNumber*)pParam { NSLog(@"-------------请求数据回调(tatal)---------------------"); _myHandle = FUN_MediaRealPlay(_myHandle, [@"设备的序列号" UTF8String], 0, 0,(__bridge void*)_playView); //参数中,第二个0表示实时视频的清晰度为高清,若为1则为流畅 FUN_MediaSetSound(_myHandle, 50,0);//设置设备的声音,声音音量为50% FUN_MediaGetCurTime(_myHandle);//显示当前时间 FUN_DevGetConfig_Json(_myHandle, [@"设备的序列号" UTF8String], "SystemInfo", 1024, -1, 5000, 0); } - (void)stop{ //停止视频 FUN_MediaStop(_myHandle); }
新添加控制摄像头上下左右的方法:
- (void)btnAction:(UIButton *)sender{ NSString *text = sender.titleLabel.text; if ([text isEqualToString:@"上"]){ NSLog(@"上"); FUN_DevPTZControl(_myHandle, [@"设备号码" UTF8String], 0, TILT_UP); }else if ([text isEqualToString:@"下"]){ NSLog(@"下"); FUN_DevPTZControl(_myHandle, [@"设备号码" UTF8String], 0, TILT_DOWN); }else if ([text isEqualToString:@"左"]){ NSLog(@"左"); FUN_DevPTZControl(_myHandle, [@"设备号码" UTF8String], 0, PAN_LEFT); }else { NSLog(@"右"); FUN_DevPTZControl(_myHandle, [@"设备号码" UTF8String], 0, PAN_RIGHT); } }
至此整个工程完成,现在在视图中显示的为实时监控画面;
相关文章推荐
- IOS中快速集成短信SDK验证开发(SMSSDK),IOS开发中如何设置手机短信验证码
- OpenOffice Calc开发(C++) 4 sdk的设置续
- 基于Visual C++2010与windows7 sdk开发Windows7应用(4) 获取windows7字体并设置字体
- 使用jQuery图表插件Sparklines来开发一个实用的网站PV(page view)实时监控应用
- 【iOS-Cocos2d游戏开发之二十二 】CCSpeed实现CCAnimate动画进行时设置慢动作以及设置游戏加减速进行(塔防游戏必备)! .
- 【iOS-Cocos2d游戏开发之二十二 】CCSpeed实现动画进行时慢动作\设置游戏加减速进行
- 关于ASP.NET开发实时监控程序的体会
- 【iOS-Cocos2d游戏开发之七】在cocos2d中添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!【11月28日更新解决添加组件Cocos2d动画停止播放的BUG】
- 【iOS-Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏 推荐
- 【iOS-Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏
- 【iOS-Cocos2d游戏开发之二十二 】CCSpeed实现CCAnimate动画进行时设置慢动作以及设置游戏加减速进行(塔防游戏必备)! .
- MonoDevelop/MonoTouch SDK开发iOS程序体验!
- ios开发中解决Base SDK missing问题
- 设备安全配置不允许连接。请确保您具有所开发设备的适当证书。有关连接此设备的正确安全设置,请查阅 SDK 文档
- 使用jQuery图表插件Sparklines来开发一个实用的网站PV(page view)实时监控应用
- OpenGLES WM6 SDK 开发环境设置
- 设备安全配置不允许连接。请确保您具有所开发设备的适当证书。有关连接此设备的正确安全设置,请查阅 SDK 文档
- 对于开发人员各个版本的ios sdk有什么不同(清单)
- 【iOS-Cocos2d游戏开发之二十一 】自定义精灵类并为你的精灵设置攻击帧以及动画创建!【二】 推荐
- 【iOS-Cocos2d游戏开发之三】CCScene切换的所有特效(27种)以及设置屏幕横竖屏!