更新时间:2024-06-05 06:32:02下载pdf
IPC SDK 依赖 Cube App SDK 中用户管理、设备配网、家庭管理、设备管理等部分,在此基础上实现了智能摄像机设备的功能。因此,您需要先集成 Cube App SDK,集成 或者 更新 IPC SDK 前请认真阅读 Cube App SDK 快速集成。
IPC SDK 最低支持 11.0 版本 iOS 系统。开发 App 时,IPC 设备不支持云开发方案,您需要同时使用 IPC SDK 和 Cube App SDK。
模块 | 说明 |
---|---|
ThingSmartCameraKit | 摄像机垂直化功能 SDK |
ThingSmartCameraKit
不只是一个单独的库,还会依赖到其他基础功能支撑的库,详情请参考 SDK 架构。
Cube App SDK 2.0.0 版本进行安全升级,请您务必先下载 App 专属安全 SDK。
在 Podfile
文件中添加以下内容:
source 'https://github.com/tuya/tuya-pod-specs.git'
platform :ios, '11.0'
target 'your_target_name' do
# 从涂鸦开发者平台(https://platform.tuya.com)构建和获取 ThingSmartCryption
# 购买正式版后,需重新在涂鸦开发者平台构建 SDK 并重新集成
# ./ 代表将 ios_core_sdk.tar.gz 解压之后所在目录与 podfile 同级
# 若自定义存放目录,可以修改 path 为自定义目录层级
pod "ThingSmartCryption", :path =>'./'
pod "ThingSmartCameraKit"
end
IPC SDK 默认不支持 P2P 1.0 的设备,即 p2pType
取值为 1 的设备。如果需要使用,请联系您的涂鸦客户经理。
IPC SDK 需要使用相册访问权限和麦克风使用权限,请确保您的项目 info.plist
文件中添加了以下权限使用说明。否则在录制视频、截图、或者视频对讲时,会造成 App 崩溃。
// 需要在 info.plist 文件中添加以下权限
Privacy - Microphone Usage Description
Privacy - Photo Library Additions Usage Description
根据 Target > General 打开项目设置,修改 Bundle Identifier
为您在 涂鸦开发者平台 上注册的 App 对应的 iOS 包名。
在项目的 PrefixHeader.pch
文件添加以下内容(Swift 项目可以添加在 xxx_Bridging-Header.h
桥接文件中)。
#import <ThingSmartBaseKit/ThingSmartBaseKit.h>
#import <ThingSmartCameraKit/ThingSmartCameraKit.h>
打开 AppDelegate.m
文件,在 [AppDelegate application:didFinishLaunchingWithOptions:]
方法中,使用在涂鸦开发者平台上 App 对应的 App Key
和 App Secret
来 初始化 SDK。
Objective-C:
[[ThingSmartSDK sharedInstance] startWithAppKey:<#your_app_key#><#your_app_key#> secretKey:<#your_secret_key#>];
Swift:
ThingSmartSDK.sharedInstance()?.start(withAppKey: <#your_app_key#>, secretKey: <#your_secret_key#>)
至此,IPC SDK 已经成功激活,您可以开始 App 开发了。
视频出流成功后,将 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 模式,打印一些日志用于分析问题。
Objective-C:
#ifdef DEBUG
[[ThingSmartSDK sharedInstance] setDebugMode:YES];
[[ThingSmartCameraSDK sharedInstance] setDebugMode:YES];
#else
#endif
Swift:
#if DEBUG
ThingSmartSDK.sharedInstance()?.debugMode = true
ThingSmartCameraSDK.sharedInstance()?.debugMode = true
#else
#endif
在开发过程中,涂鸦建议您使用真机调试。如果使用模拟器调试,可能导致部分功能无法正常使用。
Cube App SDK Demo App 包含 IPC 功能,直接参考 App SDK Demo App 配置 的配置方法,将 BundleId
、AppKey
、AppSecret
配置正确。
IPC App SDK 示例工程 Demo 仅用于演示体验,请勿直接商用。更多详情,请访问 《涂鸦开发服务协议》。
Demo App 具有以下 IPC 相关功能:
直播页面:IPC 设备的 P2P 连接流程,包含实时视频播放,视频录制、截图、对讲等功能。
回放页面:设备存储卡中视频片段的获取与播放,时间轴组件的使用。
云存储页面:云存储服务的开通、状态判断、云存储视频和云存储事件的获取与播放。
消息页面:告警事件的获取与展示。
设置页面:IPC 标准设备功能的使用。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈