ezviz-android-sdk-help

ezviz-android-sdk-help
ezviz-android-sdk-help

萤石云视频Android SDK接口使用说明版本:V2.6 合作伙伴交流使用(请勿外传)

SDK 设计目的

方便第三方开发人员接入萤石设备进行应用开发。

SDK 设计概述

采用MVC框架现实,封装model层和controller层代码,开发人员可以直接采用我们开源的view层或自定义来实现UI。

SDK相关API设计

应用SDK配置

1.新建android app工程

2.导入ezviz-openapi-android-sdk.jar(拷贝到libs/下)

3.拷贝lib*.so到libs/armeabi/

4.设置AndroidManifest.xml

权限:

其余权限请参看demo或者错误!未找到引用源。

应用组件:

android:name=".main.EzvizWebViewActivity"

android:configChanges="orientation|keyboardHidden"

android:screenOrientation="portrait" >

用于sdk中间页显示,包含登录、设备添加、设备操作等页面

android:name=".EzvizBroadcastReceiver"

android:exported="false" >

用于接收网络变化刷新SDK网络状态,接收中间页登录成功消息启动其他界面

其余权限请参看demo或者错误!未找到引用源。

5.获取摄像头列表,报警信息查询,云录像搜索、删除设备、预览和回放等功能

详细示例请看demo,具体API请看以下接口说明

SDK初始化:

在应用Application的onCreate回调函数中初始化SDK

//正式平台设置

EzvizAPI.init(this, APP_KEY); //设置APP_KEY

EzvizAPI.getInstance().setServerUrl(API_URL, WEB_URL); //设置api地址auth地址

//自定义so库路径初始化

EzvizAPI.init (Application application, String appKey, String loadLibraryAbsPath);

接口都在类com.videogo.openapi.EzvizAPI中,详细接口说明如下:

应用登录:

void gotoLoginPage();

该接口用于应用打开登录中间页

登录成功后发送播放com.videogo.action.OAUTH_SUCCESS_ACTION

应用注销:

void logout();

该接口用于应用清空登录信息

获取短信验证码:

void getSmsCode(int type, String sign);

该接口用于应用获取短信验证码

参数type为短信类型(1,获取用户accessToken;2,硬件特征码校验)

参数sign为请求签名字符串

验证短信验证码:

void verifySmsCode(int type, String userId, String phone, String smsCode); 该接口用于应用验证短信验证码

参数type为短信类型(1,获取用户accessToken;2,硬件特征码校验)

参数userId为第三用户ID

参数phone为手机号码

参数smsCode为短信验证码

设置第三方token:

void setThridToken(String thridToken);

该参数属于保留字段,用于后期扩展,暂时不需要设置值

设备添加:

void gotoAddDevicePage();

该接口用于应用打开设备添加中间页

void gotoAddDevicePage(String deviceSerial, String code);

该接口用于应用打开设备添加中间页,并传递设备二维码信息

参数deviceId为设备id,code为设备验证码

添加成功后发送播放com.videogo.action.ADD_DEVICE_SUCCESS_ACTION

设备操作:

void gotoSetDevicePage(String deviceId);

该接口用于应用打开设备操作中间页

参数deviceId为设备id,获取摄像头列表接口获得的数据,详细请参考demo或者错误!未找到引用源。

透传接口:

String transferAPI(final String _reqStr);

该接口用于透传平台Restful API,参数和返回请参见平台接口文档

设备管理接口:

获取摄像头列表:

List getCameraInfoList(GetCameraInfoList getCameraInfoList);

参数GetCameraInfoList:

返回CameraInfo列表,CameraInfo属性如下:

deviceId:设备唯一标识,用户设备表的主键

cameraId:camera表的主键

cameraNo:设备的通道号

cameraName:通道名称

status:是否在线 0:不在线 1:在线

display:是否显示 0:不显示 1:显示

isShared:分享状态

picUrl:图片地址(大图)

isEncrypt: 是否加密 0:未加密,1:已加密

详细请参考demo或者错误!未找到引用源。

删除设备:

void deleteDevice(String deviceId);

该接口用于应用删除设备

参数deviceId为设备id,获取摄像头列表接口获得的数据,详细请参考demo或者错误!未找到引用源。

报警信息查询:

List getAlarmInfoList(GetAlarmInfoList getAlarmInfoList);

参数GetAlarmInfoList:

返回AlarmInfo列表,AlarmInfo属性如下:

alarmId: 主键id

alarmName: 报警源名称

alarmType:报警类型

alarmStart:报警开始时间

云录像搜索:

List getCloudFileList(GetCloudFileList getCloudFileList); 该接口用于应用获取云录像列表

参数GetCloudFileList:

返回CloudFile列表,CloudFile属性如下:

fileId: 文件ID

startTime:开始时间

stopTime:结束时间

获取摄像头截屏:

String getCameraSnapshot(String cameraId);

该接口用于获取摄像头截屏

参数cameraId为摄像头ID

获取单个摄像头信息:

CameraInfo getCameraInfo(int cameraNo, String deviceSerial); 该接口用于获取单个摄像头信息

参数如下:

返回CameraInfo,属性同上

获取摄像头UUID录像信息:

VideoInfo getDeviceVideoInfo(String uuid);

该接口用于获取摄像头UUID录像信息

参数uuid为录像UUID,通过平台获取

返回VideoInfo,属性如下:

uuid: 录像UUID

startTime:开始时间

stopTime:结束时间

获取摄像头UUID图片地址:

String getDevicePicture(String uuid, int x);

该接口用于获取摄像头UUID图片地址

参数uuid为图片UUID,通过平台获取

参数x为图片大小(宽度,单位:像素区间:(0,1280]) 返回图片地址,如果图片加密,请按照demo下载

报警设置已读:

boolean setAlarmRead(String alarmId);

该接口用于设置报警已读,参数alarmId为报警id

返回true为设置成功,false为设置失败

获取单个设备信息:

DeviceInfo getDeviceInfo(String deviceSerial);

该接口用于单个设备信息,参数deviceSerial为设备序列号返回设备信息DeviceInfo,属性如下:

视频广场接口:

获取视频广场栏位:

List getSquareColumn();

该接口用于应用获取视频广场栏位列表

返回SquareColumnInfo列表,SquareColumnInfo属性如下:

根据栏位获取视频列表:

List getSquareVideoList(

GetSquareVideoInfoList getSquareVideoInfoList); 该接口用于应用根据栏位获取视频列表

参数GetSquareVideoInfoList:

返回SquareVideoInfo列表,SquareVideoInfo属性如下:

获取公共视频广场资源:

List searchSquareVideo(

SearchSquareVideoInfo searchSquareVideoInfo); 该接口用于应用获取公共视频资源列表

参数SearchSquareVideoInfo:

返回SquareVideoInfo列表, SquareVideoInfo属性同上收藏公共视频广场资源:

boolean favoriteSquareVideo(int squareId);

该接口用于应用收藏公共视频广场资源

参数squareId为公共视频广场视频ID

取消公共视频广场资源收藏:

boolean cancelSquareVideoFavorite(int squareId); 该接口用于应用取消公共视频广场资源收藏

参数squareId为公共视频广场视频ID

获取收藏的公共视频资源:

List getSquareVideoFavorite(

int pageStart, int pageSize);

该接口用于应用获取收藏的公共视频资源列表,参数如下:

返回SquareVideoInfo列表, SquareVideoInfo属性同上

判断视频资源是否被收藏:

String checkSquareVideoFavorite(String squareIds);

注:批量传squareId用逗号隔开

预览和回放接口:

预览接入流程:

1.创建预览任务处理对象RealPlayerHelper(com.videogo.realplay.

RealPlayerHelper)

mRealPlayerHelper = RealPlayerHelper.getInstance(application);

2.创建预览管理对象RealPlayerManager(com.videogo.realplay.

RealPlayerManager)

mRealPlayMgr = new RealPlayerManager(this);

3.设置视频显示控件

mRealPlayMgr.setPlaySurface(mRealPlaySh);//SurfaceView创建后设置mRealPlayMgr.setPlaySurface(null);// SurfaceView销毁后设置

4.任务消息接收和处理

mRealPlayMgr.setHandler(mHandler);//设备Handler接收消息

boolean handleMessage(Message msg);//回调函数处理消息

5.设置声音开关

mRealPlayMgr.isSoundOpen()判断声音是否开启

mRealPlayMgr.openSound ();//开启声音

mRealPlayMgr.closeSound ();//关闭声音

6.任务缓存数据清空

mRealPlayerHelper.clearCacheData();

详细示例代码请参考demo中的RealPlayActivity类,具体接口说明如下:开启预览:

void startRealPlayTask(final RealPlayerManager mRealPlayMgr, final String cameraId);

该接口用于开启预览任务

参数cameraId是摄像头ID,获取摄像头列表接口获得的数据

获得设备能力消息:RealPlayMsg.MSG_GET_CAMERA_INFO_SUCCESS

接收到该消息后可通过调用以下函数获取设备一些能力信息:

int getVideoLevel():当前清晰度等级2-高清,1-标清,0-流畅

String getCapability():清晰度支持情况,2-2-1 支持低中高,低中为子码流,高为

主码流;2-1-0 支持低中,不支持高品质,低为子码流,中为主码流

int getSupportTalk():支持对讲情况,0:不支持 1:支持全双工 2:保留 3:支持半双工

成功消息:RealPlayMsg.MSG_REALPLAY_PLAY_SUCCESS

失败消息:RealPlayMsg.MSG_REALPLAY_PLAY_FAIL

开启加密预览:

void startEncryptRealPlayTask(Activity activity,

final RealPlayerManager mRealPlayMgr, final String cameraId,

int title_resid, int msg1_resid, int msg2_resid);

该接口用于开启加密预览任务

其他参数同上

参数title_resid:密码输入框标题字符资源

参数msg1_resid:密码输入框提示字符资源

参数msg2_resid:密码输入框提示字符资源

输入密码错误时将收到消息

RealPlayMsg.MSG_REALPLAY_ENCRYPT_PASSWORD_ERROR

关闭预览:

void stopRealPlayTask(final RealPlayerManager mRealPlayMgr);

该接口用于关闭预览任务

开启预览录像:

void startRecordTask(final RealPlayerManager mRealPlayMgr, final Resources resources, final int resId);

该接口用于开启录像任务

成功通过消息(String)msg.obj返回录像文件路径

成功消息:RealPlayMsg.MSG_START_RECORD_SUCCESS

失败消息:RealPlayMsg.MSG_START_RECORD_FAIL

关闭预览录像:

void stopRecordTask(final RealPlayerManager mRealPlayMgr);

该接口用于关闭录像任务

预览清晰度设置:

void setVedioModeTask(final RealPlayerManager mRealPlayMgr, final int mode);

该接口用于开启设置清晰度任务

参数mode为清晰度模式: 2-高清,1-标清,0-流畅

设置成功消息:RealPlayMsg.MSG_SET_VEDIOMODE_SUCCESS

设置失败消息:RealPlayMsg.MSG_SET_VEDIOMODE_FAIL

开启预览截屏:

void capturePictureTask(final RealPlayerManager mRealPlayMgr);

该接口用于开启截屏任务

成功通过消息(String)msg.obj返回抓图文件路径

成功消息:RealPlayMsg.MSG_CAPTURE_PICTURE_SUCCESS

失败消息:RealPlayMsg.MSG_CAPTURE_PICTURE_FAIL

开启对讲:

void startVoiceTalkTask(final VoiceTalkManager voiceTalkManager, final String cameraId);

该接口用于开启对讲任务

参数VoiceTalkManager(com.videogo.voicetalk.VoiceTalkManager)为对讲管理对象

mVoiceTalkManager = new VoiceTalkManager();

mVoiceTalkManager.setHandler(mHandler);//设置接收消息Handler

mVoiceTalkManager.setVoiceTalkStatus(pressed);

半双工对讲时设置,表明是客户端说话发送,不播放设备端声音

成功消息:RealPlayMsg.MSG_REALPLAY_VOICETALK_SUCCESS

失败消息:RealPlayMsg.MSG_REALPLAY_VOICETALK_FAIL

关闭对讲:

void stopVoiceTalkTask(final VoiceTalkManager voiceTalkManager);

该接口用于关闭对讲任务

关闭结束消息:RealPlayMsg.MSG_REALPLAY_VOICETALK_STOP

回放接入流程:

1.创建回放任务处理对象RemotePlayBackHelper (com.videogo.remoteplayback.

RemotePlayBackHelper)

mRemotePlayBackHelper = RemotePlayBackHelper.getInstance(application);

2.创建回放管理对象RemotePlayBackManager(com.videogo.remoteplayback.

RemotePlayBackManager)

mRemotePlayBackMgr = new RemotePlayBackManager(this);

3.设置视频显示控件

mRemotePlayBackMgr.setPlaySurface(mRealPlaySh);//SurfaceView创建后设置

mRemotePlayBackMgr.setPlaySurface(null);// SurfaceView销毁后设置4.任务消息接收和处理

mRemotePlayBackMgr.setHandler(mHandler);//设备Handler接收消息boolean handleMessage(Message msg);//回调函数处理消息

5.获取当前播放视频时间

mRemotePlayBackMgr.getOSDTime();

6.任务缓存数据清空

mRemotePlayBackHelper.clearCacheData();

开启回放:

void startRemotePlayBackTask(final RemotePlayBackManager playBackManager, final String cameraId, final String password, final Calendar startTime, final Calendar stopTime);

该接口用于开启回放任务,回放报警录像和云录像

参数startTime:开始回放时间

stopTime:停止回放时间

数据来源于云录像搜索返回CloudFile数据

开启加密回放:

void startEncryptRemotePlayBackTask(Activity activity, final RemotePlayBackManager playBackManager, final String cameraId, final Calendar startTime, final Calendar stopTime,

int title_resid, int msg1_resid, int msg2_resid);

该接口用于开启加密回放任务

其他参数同上

参数title_resid:密码输入框标题字符资源

参数msg1_resid:密码输入框提示字符资源

参数msg2_resid:密码输入框提示字符资源

关闭回放:

Void stopRemotePlayBackTask(

final RemotePlayBackManager playBackManager);

该接口用于关闭回放任务

暂停回放:

void pauseRemotePlayBackTask(

final RemotePlayBackManager playBackManager);

该接口用于暂停回放任务

恢复回放:

void resumeRemotePlayBackTask(

final RemotePlayBackManager playBackManager);

该接口用于恢复回放任务,暂停时有效

设备本地录像获取:

当接收到RemotePlayBackMsg.MSG_REMOTEPLAYBACK_SEARCH_FILE_SUCCUSS消息后,通过RemotePlayBackManager接口获取设备本地录像列表:

List getRemoteFileInfoList();

返回RemoteFileInfo列表,RemoteFileInfo属性如下:

type: 文件类型:0为报警录像,1为普通录像

startTime:开始时间

stopTime:结束时间

filename:文件名

fileSize:文件大小

回放录像、截屏接口:

同预览接口类似

报警推送接口:

推送接入流程:

1.登录成功后开启推送服务

AndroidpnUtils.startPushServer(context)

相关主题
相关文档
最新文档