快速集成 iOS 版 IPC SDK

更新时间:2023-05-22 06:38:30下载pdf

iOS 版 IPC SDK 依赖 智能生活 App SDK 中用户管理、设备配网、家庭管理、设备管理等部分,在此基础上实现了智能摄像机设备的功能。

SDK 最低支持系统版本 9.0。开发 App 时,IPC 设备不支持云开发方案,您需要同时使用 IPC SDK 和智能生活 App SDK。

模块说明

模块 说明
TuyaSmartActivatorKit 设备配网 SDK
TuyaSmartCameraKit 涂鸦智能摄像机垂直化功能 SDK

TuyaSmartCameraKit 不只是一个单独的库,还会依赖到其他基础功能支撑的库,请参考 SDK 架构

环境设置

SDK 集成

Podfile 文件中添加以下内容:

platform :ios, '9.0'

target 'your_target_name' do

  pod "TuyaSmartActivatorKit"
	pod "TuyaSmartCameraKit"
	# pod "TuyaSmartCameraT"

end

如果您需要支持 P2P 1.0 的设备,需要增加 pod "TuyaSmartCameraT", 然后在项目根目录下执行 pod update 命令。CocoaPods 的使用,请参考 CocoaPods 官方文档

权限设置

IPC SDK 需要使用到相册访问权限和麦克风使用权限,请确保您的项目中添加了下面两个权限的使用说明,否则在录制视频、截图、或者视频对讲时,会造成 App 崩溃。

// 需要在info.plist 文件中添加以下权限
Privacy - Microphone Usage Description
Privacy - Photo Library Additions Usage Description

初始化 SDK

  1. 根据 Target > General 打开项目设置,修改 Bundle Identifier 为您在 涂鸦 IoT 平台 上注册的 App 对应的 iOS 包名。

  2. 准备工作 中下载的安全图片导入到工程根目录,重命名为 t_s.bmp,并加入 项目设置 > Target > Build Phases > Copy Bundle Resources 中。

  3. 在项目的 PrefixHeader.pch 文件添加以下内容(Swift 项目可以添加在 xxx_Bridging-Header.h 桥接文件中)。

    #import <TuyaSmartBaseKit/TuyaSmartBaseKit.h>
    #import <TuyaSmartActivatorKit/TuyaSmartActivatorKit.h>
    #import <TuyaSmartCameraKit/TuyaSmartCameraKit.h>
    
  4. 打开 AppDelegate.m 文件,在 [AppDelegate application:didFinishLaunchingWithOptions:] 方法中,使用在涂鸦 IoT 平台上,App 对应的 App KeyApp Secret 初始化 SDK。

    • Objective-C:

      [[TuyaSmartSDK sharedInstance] startWithAppKey:<#your_app_key#> secretKey:<#your_secret_key#>];
      
    • Swift:

      TuyaSmartSDK.sharedInstance()?.start(withAppKey: <#your_app_key#>, secretKey: <#your_secret_key#>)
      

至此,IPC SDK 已经成功激活,您可以开始 App 开发了。

Main 函数适配

视频出流成功后,将 App 退到后台,停留一段时间再回前台,可能会造成 App 崩溃,错误原因为 Terminated due to signal 13。为了防止该崩溃的发生,请在项目中添加以下代码:

  • Objective-C:main.m

    int main(int argc, char * argv[]) {
    	@autoreleasepool {
    
    		struct sigaction sa;
    		sa.sa_handler = SIG_IGN;
    		sigemptyset(&sa.sa_mask);
    		sa.sa_flags = 0;
    
    		if (sigaction(SIGPIPE, &sa, NULL) < 0) {
    			perror("cannot ignore SIGPIPE");
    			return -1;
    		}
    
    		return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    	}
    }
    
  • Swift:AppDelegate.swift

    let handler: @convention(c) (Int32) -> () = { sig in
    		// handle the signal somehow
    		print("error", sig)
    	}
    
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    		// Override point for customization after application launch.
    
    		signal(SIGPIPE, handler)
    		return true
    	}
    

开启 Debug 模式

在开发的过程中可以开启 Debug 模式,打印一些日志用于分析问题。

  • Objective-C:

    #ifdef DEBUG
    	[[TuyaSmartSDK sharedInstance] setDebugMode:YES];
    #else
    #endif
    
  • Swift:

    #if DEBUG
    TuyaSmartSDK.sharedInstance()?.debugMode = true
    #else
    #endif
    

    在开发过程中,涂鸦建议您使用真机调试。如果使用模拟器调试,可能导致部分功能无法正常使用。

运行 Demo App

请访问 IPC SDK Demo 仓库 获取 Demo App。然后参考 智能生活 App SDK Demo App 的配置方法,将 BundleIdAppKeyAppSecret、安全图片配置正确。

IPC SDK Demo App 在智能生活 App SDK Demo App 的功能基础上,增加了 IPC 设备的控制面板模块。

  • 直播页面:IPC 设备的 P2P 连接流程,包含实时视频播放,视频录制、截图、对讲等功能。

  • 回放页面:设备存储卡中视频片段的获取与播放,时间轴组件的使用。

  • 云存储页面:云存储服务的开通、状态判断、云存储视频和云存储事件的获取与播放。

  • 消息页面:告警事件的获取与展示。

  • 设置页面:IPC 标准设备功能的使用。

    快速集成 iOS 版 IPC SDK 快速集成 iOS 版 IPC SDK 快速集成 iOS 版 IPC SDK快速集成 iOS 版 IPC SDK