IOS标准化Demo
IOS标准化Demo基于OpenSDK组件实现了慧视云音视频相关的核心功能。建议开发者阅读Demo源代码,作为参考或者移植到自己项目中,有助于快速集成。
1. 功能描述
获取设备列表:获取绑定的中维协议3.0(原公有云协议)设备和国标设备。
设备详情:设备解绑、网络配置等。
实时预览:视频播放、语音对讲、抓图、本地录制等。
录像回放:云录像/设备录像回放、倍速播放等。
绑定设备:支持扫码添加和通过设备号添加。
简要流程:
2. 环境搭建
以Demo为例,为开发者介绍项目的工程配置。Demo工程支持Xcode11.6以上,iOS11版本以上编译调试。
当前SDK以framework形式导入工程引用,且需勾选Embed&Sign,framework位于Demo/SDK目录下:
3. 工程依赖库
3.1 工程依赖系统库
NetworkExtension
ExternalAccessory
Photos
CoreMotion
AudioToolbox
CoreAudio
AVFoundation
AVKit
libc.tbd
libc++.tbd
3.2 工程依赖第三方库
AFNetworking(网络请求库)
MJExtension(模型数据转化)
YYCache(数据缓存)
SVProgressHUD(等待旋转控件)
MJRefresh(下拉、上拉刷新)
Masonry(OC约束布局)
ZXingObjC(扫码库)
SDWebImage(图片加载框架)
IQKeyboardManager(键盘控制框架)
请根据当前Xcode版本选择对应版本三方库进行使用。
3.3 Xcode工程配置
路径:Build Phases ->Embed Frameworks
添加JVSPlayerSDK.framework,Destinations选择Frameworks。
3.4 工程相关
将SDK库添加至Xcode(11.6以上)工程,以确保被正确引用,动态库在Build Phases ->Embed Frameworks中配置自签名选项。
在Info.plist里面增加2项隐私设置
麦克风权限:Privacy - Microphone Usage Description App需要您的同意才能访问麦克风,用于与设备对讲
相册权限: Privacy - Photo Library Usage Description App需要您的同意才能访问相册,用于与存放视频和图片
4. 获取accessToken
获取设备列表之前,需要先获取accessToken,成功获取token后可刷新设备列表。获取token方法在HSDeviceManagerViewController.m中
[HSNetworkManager PostToken: success: failure:]
5. 获取设备列表
成功获取token后,调用获取设备列表接口,返回设备列表信息。建议创建设备模型方便后续存取使用。
6. 设备添加配网以及设备删除
设备添加流程如下:
1.选择接入设备类型中维协议3.0(原公有云协议)设备或者国标设备。
- 中维协议3.0(原公有云协议)设备支持扫码添加设备,扫码失败可以点击下方按钮手动输入设备号配网添加。
国标设备只支持手动输入设备信息配网添加。
信息输入完成后调用添加设备接口
//添加中维协议3.0(原公有云协议)设备
+ (NSURLSessionTask *)addDeviceWithParameters:(id)parameters success:(MyRequestSuccess)success failure:(MyRequestFailure)failure {
return [self newRequestWithURL:MyString(URL_Device_add) checkToken:YES parameters:parameters success:success failure:failure];
}
- 设备解绑调用设备删除接口
//解绑设备
+ (NSURLSessionTask *)removeDeviceWithParameters:(id)parameters success:(MyRequestSuccess)success failure:(MyRequestFailure)failure {
return [self newRequestWithURL:MyString(URL_Device_remove) checkToken:YES parameters:parameters success:success failure:failure];
}
7. 实时预览
在HSVideoManagerController
中的getMts:
方法中获取直播了地址,然后调用JVSPlayerSDK
的deviceConnect:
连接设备播放视频流。具体实现参考Demo源码。
8. 语音对讲
在HSVideoViewController
中的getChannelChat
方法获取对讲地址,然后调用JVSPlayerSDK
的startTalk:
连接设备开始对讲。具体实现参考Demo源码。
9. 设备录像查询回放
在HSPlaybackViewController
中的newGetPlayBackListConnectDeviceWithParameters:
方法查询回放列表,然后通过newPlayBackConnectDeviceWithParameters:
方法获取录像回放地址,然后调用JVSPlayerSDK
的playerBackDeviceInfo:
连接设备播放回放视频。具体参考Demo源码。
10. 云录像查询回放
在HSPlaybackViewController
中的newGetPlayBackListConnectDeviceWithParameters:
方法查询云录像列表。然后通过newCloudPlayBackConnectDeviceWithParameters:
方法获取录像回放地址,然后调用JVSPlayerSDK
的playerBackDeviceInfo:
连接设备播放回放视频。具体参考Demo源码。
11. 设备录像下载
在HSPlaybackViewController
中的newPlayBackConnectDeviceWithParameters:
方法获取录像播放地址,通过调用JVSPlayerSDK
的playerDownloadForTimeStart
开始下载录像文件到设备。具体实现参考Demo源码。
12. 云台控制
在HSVideoViewController
中的ActionWithType:
方法实现云台上下左右移动,具体参考Demo源码。
13. 注意事项
由于Demo已实现大部分监控安防功能,已能满足基础需求,但请勿直接上传AppStore。
app上架会进行代码重复率机审与界面相似度人工审查,如发现重复相似度高会有如下提示:
Guideline 4.3 - Design
Your app duplicates the content and functionality of apps currently available on the App Store.
因此,我们鼓励开发者在开放平台Demo基础上进行代码/界面调整,或者基于openSDK/开放平台API进行完整开发。
14. 进入前后台需要对SDK做处理
app进入后台调用:playerPreconnectionDeinit
app进入前台调用:resetPlayerForEnterForground
和 playerPreconnectionInit
15. 测试推荐
推荐使用设备
- 使用规格为C7LE、慧视云7324NVR;
- 国标海康枪机IPC、国标大华球机IPC、国标大华枪机IPC、国标大华NVR;
推荐使用iOS版本及手机
- iOSAPP适用于iOS13/14系统;
- iPhoneSE(iOS13.6.1,1136x640);
- iPhone8Plus(iOS13.5,2208x1242);
- iPhone11(iOS14.3,1792x828);
- iPhone12(iOS14.3,2532x1170);