iOS集成雄邁視頻FunSDK

*本文中涉及的實時監(jiān)控為“雄邁開放平臺”(相關(guān)API

集成的時候走了很多彎路,希望對有需要集成的朋友有所幫助

主要功能:實現(xiàn)攝像頭監(jiān)控畫面的實時播放;

開發(fā)步驟:

由于維邁所提供的FunSDK是C++混編的,so 需要對工程中所有需要本類,以及方法的地方都需支持C++。將需要用到FunSDK的.m文件直接重命名為.mm文件導(dǎo)入第三方庫: 【OpenAL.framework】【 libresolv】【libiconv】【libbz2】【libz】最后還需要一個【libstdc++.6.0.9】支持C++混編的將FunSDK.framework文件拖入工程

接著就是工程里的一些設(shè)置

build settings里面 搜索

Bitcode

Bitcode 設(shè)置為NO;

C Language Dialect

Build Active Architecture Only 設(shè)置為NO;

Other Linker flags

Other Linker flags 添加 -ObjC

Framework Search Paths

添加? $(PROJECT_DIR)/項目名 和 $(inherited)

Apple LLVM 7.0 -Language


設(shè)置為gun11

Apple LLVM 7.0 - Language -C++


設(shè)置完成還需添加PCH文件 并定義宏? 添加PCH具體就不細(xì)講 搜索一下就能找到

#define OS_IOS 1

編輯導(dǎo)入 在項目AppDelegate.mm

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

[self FunSDKSetting];

NSString *uuid = @"官網(wǎng)注冊獲取";

NSString *appkey = @"官網(wǎng)注冊獲取";

NSString *appSecret = @"官網(wǎng)注冊獲取";

FUN_XMCloundPlatformInit([uuid UTF8String], [appkey UTF8String], [appSecret UTF8String], @"官網(wǎng)注冊獲取");

return YES;

}

申明常量

const static char* constStrServerAddrs = "223.4.33.127;54.84.132.236;112.124.0.188";

const static short constIntServerPort = 15010;


設(shè)置方法

- (void)FunSDKSetting{

SInitParam pa;

pa.nAppType = H264_DVR_LOGIN_TYPE_MOBILE;

FUN_Init(0, &pa);

FUN_InitNetSDK();

//設(shè)置用于存儲設(shè)備信息等的數(shù)據(jù)配置文件

NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);

NSString *path = [pathArray lastObject];

//設(shè)置配置文件存儲目錄

FUN_SetFunStrAttr(EFUN_ATTR_CONFIG_PATH, [[path stringByAppendingString:@"/Configs/"] UTF8String]);

//設(shè)置升級文件存儲目錄

FUN_SetFunStrAttr(EFUN_ATTR_UPDATE_FILE_PATH,[[path stringByAppendingString:@"/Updates/"] UTF8String]);

//設(shè)置臨時文件存儲目錄

FUN_SetFunStrAttr(EFUN_ATTR_TEMP_FILES_PATH,[[path stringByAppendingString:@"/Temps/"] UTF8String]);

//設(shè)置本地登錄設(shè)備相關(guān)信息保存文件的位置

FUN_SysInit([[path stringByAppendingString:@"/LocalDevs.db"] UTF8String]);

//設(shè)置AP模式(app直連設(shè)備熱點)下設(shè)置設(shè)備信息保存文件位置

FUN_SysInitAsAPModel([[path stringByAppendingString:@"/APDevs.db"] UTF8String]);

//設(shè)置云服務(wù)

FUN_SysInit(constStrServerAddrs, constIntServerPort);

}

定義一個View作為播放視圖 繼承UIView

XmView.h

#import@interface XmView : UIView

@end

XmView.mm

#import "XmView.h"

@implementation XmView

+(Class) layerClass{

return [CAEAGLLayer class];

}

@end

ViewController.mm? 視頻展現(xiàn)在這個控制器

#import "ViewController.h"

#import<FunSDK/FunSDK.h>

#import "XmView.h"

@interface ViewController ()

@end

@implementation ViewController

{

int _myHandle;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //播放窗口

XmView* _playView;? ? ? ? ? ? ? ? ? ? ? ? ? //播放視圖

}

- (void)viewDidLoad {

[super viewDidLoad];

_myHandle = FUN_RegWnd((__bridge void*)self);

FUN_SysGetDevState(FUN_RegWnd((void*)CFBridgingRetain(self)), [@"設(shè)備序列號" UTF8String]);

self.view.backgroundColor = [UIColor whiteColor];

// 1.0 視頻播放界面

_playView = [[XmView 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];

}

#pragma mark - SDK 回調(diào)

- (void)OnFunSDKResult:(NSNumber*)pParam

{

NSLog(@"-------------請求數(shù)據(jù)回調(diào)(tatal)---------------------");

_myHandle =

FUN_MediaRealPlay(_myHandle, [@"設(shè)備序列號" UTF8String], 0, 1,(__bridge void*)_playView);

//參數(shù)中,第二個0表示實時視頻的清晰度為高清,若為1則為流暢

FUN_MediaSetSound(_myHandle, 50,0);//設(shè)置設(shè)備的聲音,聲音音量為50%

FUN_MediaGetCurTime(_myHandle);//顯示當(dāng)前時間

FUN_DevGetConfig_Json(_myHandle, [@"設(shè)備序列號" UTF8String],

"SystemInfo", 1024, -1, 5000, 0);

}

點擊屏幕停止播放

-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event{

[super touchesBegan:touches withEvent:event];

//停止視頻

FUN_MediaStop(_myHandle);

}

現(xiàn)在在視圖中顯示的為實時監(jiān)控畫面;


--------------在更新sdk的時候出現(xiàn) invalid bitcode signature--------------


解決方法:設(shè)置Build Active Architecture Only


如果還沒解決參考:https://blog.csdn.net/bobbob32/article/details/77008701

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容