IOS标准化Demo

IOS标准化Demo基于OpenSDK组件实现了慧视云音视频相关的核心功能。建议开发者阅读Demo源代码,作为参考或者移植到自己项目中,有助于快速集成。

1. 功能描述
  • 获取设备列表:获取绑定的中维协议3.0(原公有云协议)设备和国标设备。

  • 设备详情:设备解绑、网络配置等。

  • 实时预览:视频播放、语音对讲、抓图、本地录制等。

  • 录像回放:云录像/设备录像回放、倍速播放等。

  • 绑定设备:支持扫码添加和通过设备号添加。

截屏2021-03-17 下午5.48.35

简要流程:

1

2. 环境搭建

以Demo为例,为开发者介绍项目的工程配置。Demo工程支持Xcode11.6以上,iOS11版本以上编译调试。

当前SDK以framework形式导入工程引用,且需勾选Embed&Sign,framework位于Demo/SDK目录下:

截屏2021-03-17 下午5.57.07

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。

    截屏2021-03-17 下午6.11.45

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

IMG_0590

获取设备列表之前,需要先获取accessToken,成功获取token后可刷新设备列表。获取token方法在HSDeviceManagerViewController.m中

[HSNetworkManager PostToken: success: failure:]
5. 获取设备列表

成功获取token后,调用获取设备列表接口,返回设备列表信息。建议创建设备模型方便后续存取使用。

6. 设备添加配网以及设备删除

设备添加流程如下:

1.选择接入设备类型中维协议3.0(原公有云协议)设备或者国标设备。

  • ​ 中维协议3.0(原公有云协议)设备支持扫码添加设备,扫码失败可以点击下方按钮手动输入设备号配网添加。

IMG_0592

  • 国标设备只支持手动输入设备信息配网添加。

    IMG_F48E133D93A4-1

  • 信息输入完成后调用添加设备接口

//添加中维协议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];
}
  1. 设备解绑调用设备删除接口
//解绑设备
+ (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:方法中获取直播了地址,然后调用JVSPlayerSDKdeviceConnect:连接设备播放视频流。具体实现参考Demo源码。

8. 语音对讲

HSVideoViewController中的getChannelChat方法获取对讲地址,然后调用JVSPlayerSDKstartTalk:连接设备开始对讲。具体实现参考Demo源码。

9. 设备录像查询回放

HSPlaybackViewController中的newGetPlayBackListConnectDeviceWithParameters:方法查询回放列表,然后通过newPlayBackConnectDeviceWithParameters:方法获取录像回放地址,然后调用JVSPlayerSDKplayerBackDeviceInfo:连接设备播放回放视频。具体参考Demo源码。

10. 云录像查询回放

HSPlaybackViewController中的newGetPlayBackListConnectDeviceWithParameters:方法查询云录像列表。然后通过newCloudPlayBackConnectDeviceWithParameters:方法获取录像回放地址,然后调用JVSPlayerSDKplayerBackDeviceInfo: 连接设备播放回放视频。具体参考Demo源码。

11. 设备录像下载

HSPlaybackViewController中的newPlayBackConnectDeviceWithParameters:方法获取录像播放地址,通过调用JVSPlayerSDKplayerDownloadForTimeStart开始下载录像文件到设备。具体实现参考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进入前台调用:resetPlayerForEnterForgroundplayerPreconnectionInit

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);

results matching ""

    No results matching ""