乐橙云开发文档
控制台
更新日志
控制台
更新日志
快速入门
  • 开始使用
  • 核心概念
  • 开发指南
  • 设备能力与事件参考
  • API 参考
  • SDK 与工具
    • Android SDK
    • iOS SDK
      • 安装与初始化
      • 功能集成
      • API 参考
      • 示例工程
      • 更新日志
      • 版本迁移
      • 隐私与合规
    • 鸿蒙 SDK
    • PC SDK
    • 轻应用组件 ImouPlayer
    • 小程序插件与半屏小程序
    • 图片解密组件
    • 服务端示例与签名工具
    • Postman 集合
    • 资源下载
  • 行业方案
  • 平台与支持
本页目录
步骤
功能
环境
管理员账号模拟登录
设备列表
初始化、无线配网、绑定与解绑
预览、对讲、回放与云台
上架
相关
相关参考

示例工程

示例工程

iOS 标准化 Demo 基于 OpenSDK 组件,实现乐橙云开放平台音视频相关的核心功能。建议阅读 Demo 源代码,作为参考或移植到自己的项目,有助于快速集成。下载见 资源下载 的 iOS Demo 行。

由于 Demo 没有后台 SaaS 服务,Demo 直接在客户端请求开放平台接口来获取数据以及其他操作。建议涉及调用乐橙开放平台 OpenAPI 的地方,由开发者后台 SaaS 去调用,再将数据返回给客户端 App,整体系统架构采用云云对接。调用接口需要 appId 和 appSecret。如果放在客户端代码中实现,客户端被反编译后,存在 appId 和 appSecret 被盗用的风险。

appId、appSecret 从开放平台网站获取。开发者创建应用后,在开放平台网站的开发中心、应用详情页中可以找到。生产应用不要把真实 AppSecret 写入客户端、示例配置或仓库。

步骤

按本页后续各节操作。

功能

iOS LCOpenSDKDemo 实现的主要功能包括:

  • 管理员模式登录
  • 获取设备列表
  • 添加/删除设备
  • 实时预览
  • 语音对讲
  • 设备录像回放
  • 云录像回放和下载

环境

以 Demo 为例介绍工程配置。Demo 工程支持 Xcode 11 版本以上编译调试。

当前 LCOpenSDK 以 framework 形式导入工程引用,且需勾选 Embed&Sign。framework 位于 Depend/Frameworks/iOS 目录下,头文件位于 LCOpenSDKDynamic.framework/Headers 目录下。

工程依赖系统库:CoreAudio、MediaPlayer、AudioToolbox、VideoToolbox、OpenGLES、MediaAccessibility、CoreVideo、AVFoundation、CoreMedia、libz.tbd(libz.dylib)。

工程依赖三方库:

  • KVOController(键值监控)
  • Masonry(OC 约束布局)
  • SnapKit(Swift 约束布局)
  • ZXingObjc(扫码库)
  • AFNetworking(网络请求库)
  • MJExtension(模型数据转化)
  • MJRefresh(上下拉控件)
  • SAMKeychain(钥匙串存储工具)
  • SDWebImage(图片加载框架)
  • MBProgressHUD(等待旋转控件)
  • FMDB(数据库框架)
  • GTMBase64(编码库)

请根据当前 Xcode 版本选择对应版本三方库。Xcode 11、12 可直接从 Demo 中拷贝导入使用。

Xcode 工程配置:

  • Build Setting → Search Paths → Framework Search Paths 添加 $(PROJECT_DIR)/Depend/Frameworks/iOS,支持 framework 自动检索。
  • 同一项 Framework Search Paths 再添加:
$(PROJECT_DIR)/Depend/Frameworks/iOS/LCOpenSDKDynamic.framework/Headers
$(PROJECT_DIR)/Depend/Frameworks/iOS/LCOpenSDKDynamic.framework/Headers/LCOpenSDK
$(PROJECT_DIR)/Depend/Frameworks/iOS/LCOpenSDKDynamic.framework/Headers/LCOpenNetSDK
$(PROJECT_DIR)/Depend/Frameworks/iOS/LCOpenSDKDynamic.framework/Headers/LCOpenApi
  • Build Phases → Embed Frameworks 添加 LCOpenSDKDynamic.framework,Destinations 选择 Frameworks。
  • Build Setting → Search Paths → Library Search Paths 添加 $(PROJECT_DIR)/Depend。

将 SDK 动态库以及头文件添加到 Xcode 11.0 以上版本的工程。C++ standard library 选择 libc++。工程设置混编(需支持 C++ 调用),具体可参考 Demo。

管理员账号模拟登录

获取管理员设备列表以及进行设备操作前,需要获取 accessToken(管理员 token)。获取 accessToken 的过程叫做管理员账号模拟登录。获取管理员 token 之后,直接进入设备列表界面。

iOS Demo 源码已实现「获取 accessToken」,见 LCAccountInterface.m 的 accessTokenWithsuccess。

设备列表

模拟登录之后,可调用 设备查询 获取设备列表。建议将设备 ID、设备名、设备能力集、设备是否在线等缓存起来,用于后续实时预览、录像查询。

初始化、无线配网、绑定与解绑

  • 无线配网、局域网搜设备与初始化步骤与 功能集成 · 设备添加 一致(类名以头文件为准,如 LCOpenSDK_ConfigWIfi、LCOpenSDK_SearchDevices)。示例:[[LCOpenSDK_ConfigWIfi alloc] init] 后调用 configWifiStart:…;收到配网结束回调后调用 configWifiStop;搜初始化信息可用 [[LCOpenSDK_SearchDevices shareSearchDevices] startSearchDevicesWithDeviceId:… timeOut:… callback:…],详见 Demo 源文件与 fragment 示例。
  • 设备只有配网成功并连上乐橙开放平台,才能进行之后的绑定。
  • 检查是否已绑定,调用 checkDeviceBindOrNot。
  • 检查是否在线,调用 deviceOnline。
  • 绑定设备,调用 bindDevice。
  • 解绑设备,调用 unBindDevice。

initStatus=2 代表设备支持初始化且已被初始化。initStatus=0 代表设备不支持初始化。

预览、对讲、回放与云台

实时预览见 Demo 源代码,接口见 LCLivePreviewPresenter+control.m 的 startPlay。

语音对讲见 LCLivePreviewPresenter+control.m 的 onAudioTalk。

设备录像查询调用 queryLocalRecords。设备录像查询只能以天为单位,开始时间与结束时间不能跨天,否则容易产生查询超时错误。回放见 Demo 源文件 LCVideotapePlayerPersenter+Control.m(工程内保留该拼写)的 startPlay。

云录像查询调用 queryCloudRecords。云录像播放见 LCVideotapePlayerPersenter+Control.m 的 startPlay。

云台上下左右移动使用 controlMovePTZ,见 LCLivePreviewPresenter.m。

上架

由于 Demo 已实现大部分监控安防功能,已能满足基础需求,但请勿直接上传 App Store。

上架会进行代码重复率机审与界面相似度人工审查。重复相似度高时会有如下提示:

Guideline 4.3 - Design

Your app duplicates the content and functionality of apps currently available on the App Store.

鼓励开发者在开放平台 Demo 基础上进行代码或界面调整,或者基于 OpenSDK / 开放平台 API 进行完整开发。

相关

  • 安装与初始化
  • 客户端 SDK 实时预览
  • 标准化 Demo

相关参考

  • 开发指南

商务合作:cloud_openteam@imou.com · 工单 · 获取帮助(公众号、小程序试用中心)

Copyright © 2015-2026 IMOU. All Rights Reserved. 浙ICP备16023676号

工具与解密
更新日志