Android标准化Demo

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

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

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

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

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

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

    详细流程:

    2. 环境搭建

以Demo为例,为开发者介绍项目的工程配置。Demo工程支持Android SDK17以上编译调试。

2.1 添加SO库

使用默认配置,不需要修改build.gradle。在 main 目录下创建文件夹 jniLibs (如果有就不需要创建了),将下载文件的 armeabi 文件夹复制到这个目录下,如果已经有这个目录,将下载的 so 库复制到这个目录。jni文件放在com.jovision.jvplayer目录下即可。如图所示:

2.2配置权限

在AndroidManifest.xml中配置权限:

<!--允许程序打开网络套接字-->

<uses-permission android:name="android.permission.INTERNET" /> 

<!--允许程序设置内置sd卡的写权限-->

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
3. 工程依赖库
3.1 工程依赖第三方库

RxBinding(包括RxJava和RxAndroid)

retrofit2、okhttp(网络库)

SwipeDelMenuLayou (侧滑删除)

zxing (二维码编解码库)

calendarview (日历控件三方库)

SmartRefreshLayout(下拉刷新库)

easypermissions (权限库)

4. 获取accessToken

IMG_0590

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

private void loadToken(String server, String appKey, String appSecret)
5. 获取设备列表

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

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

设备添加流程如下:

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

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

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

    IMG_F48E133D93A4-1

  1. 信息输入完成后调用添加设备接口
    /**
 * 添加设备
 *
 * @param params
 */
public Observable<ResponseData<bean>> addDevice(HashMap<String, Object> params) {
  return loadData(Consts.addDevice, params, new TypeToken<bean>() {
  }.getType());
}
/**
 * 添加国标设备
 * @param params
 * @return
 */
public Observable<ResponseData<GBInfo>> addGBDevice(HashMap<String, Object> params) {
  return loadData(Consts.addGBDevice, params, new TypeToken<GBInfo>() {
  }.getType());
}
  1. 设备解绑调用设备删除接口
    /**
 * 删除设备
 *
 * @param params
 */
public Observable<ResponseData<bean>> deleteDevice(HashMap<String, Object> params) {
  return loadData(Consts.deleteDevice, params, new TypeToken<bean>() {
  }.getType());
}
7. 实时预览

C2PlayHelper中的private void getPlayInfo()方法中获取直播了地址,然后调用jnijavPlayerConnect连接设备播放视频流。具体实现参考Demo源码。

8. 语音对讲

JVMultiPlayActivity中的private void switchCall()方法获取对讲地址,然后调用jnijavPlayerIntercomStart连接设备开始对讲。具体实现参考Demo源码。

9. 设备录像查询回放

JVBaseRemoteLinePlayActivity中的private void searchRecord()方法查询回放列表,然后通过private void playRecord(String start_time, String end_time)方法获取录像回放地址,然后调用jnijavPlayerPlayRecord连接设备播放回放视频。具体参考Demo源码。

10. 设备录像下载

JVBaseRemoteLinePlayActivity中的private void requestRecordDownloadUrl()方法获取录像下载地址,通过调用jnijavPlayerDownloadTimeStart开始下载录像文件到设备。具体实现参考Demo源码。

11. 云录像查询回放

JVBaseRemoteLinePlayActivity中的private void searchRecord()方法查询云录像列表。然后通过private void playRecord(String start_time, String end_time)方法获取录像回放地址,然后调用jnijavPlayerConnect 连接设备播放回放视频。具体参考Demo源码。

12. 云台控制

JVMultiPlayActivity中的public void ptzMoveStart(int left, int up, int zoom)方法实现云台上下左右移动,具体参考Demo源码。

13. 注意事项

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

google play上架会进行代码重复率机审与界面相似度人工审查,如发现重复相似度高被强制下架

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

14. 测试推荐
14.1 推荐使用设备
使用规格为C7LE、慧视云7324NVR;
国标海康枪机IPC、国标大华球机IPC、国标大华枪机IPC、国标大华NVR;
14.2 推荐使用Android版本及手机

Android Demo适用于Android9/10/11系统

一加7Pro(Android9高通骁龙855,3120x1440);
MEIZU16T(Android9高通骁龙855,2232x1080);
小米cc9(Android10骁龙710,1080x2340);
oppofindx(Android11,高通骁龙845,2340x1080);
三星GalaxyA905G(Android11,高通骁龙855,1080x2400);

results matching ""

    No results matching ""