更新时间: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 标准设备功能的使用。


该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈