您的位置:首页 > 移动开发 > IOS开发

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);
}

}


至此整个工程完成,现在在视图中显示的为实时监控画面;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sdk ios 实时监控 直播
相关文章推荐