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:
返回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:
返回AlarmInfo列表,AlarmInfo属性如下:
alarmId: 主键id
alarmName: 报警源名称
alarmType:报警类型
alarmStart:报警开始时间
云录像搜索:
List
参数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
该接口用于应用获取视频广场栏位列表
返回SquareColumnInfo列表,SquareColumnInfo属性如下:
根据栏位获取视频列表:
List
GetSquareVideoInfoList getSquareVideoInfoList); 该接口用于应用根据栏位获取视频列表
参数GetSquareVideoInfoList:
返回SquareVideoInfo列表,SquareVideoInfo属性如下:
获取公共视频广场资源:
List
SearchSquareVideoInfo searchSquareVideoInfo); 该接口用于应用获取公共视频资源列表
参数SearchSquareVideoInfo:
返回SquareVideoInfo列表, SquareVideoInfo属性同上收藏公共视频广场资源:
boolean favoriteSquareVideo(int squareId);
该接口用于应用收藏公共视频广场资源
参数squareId为公共视频广场视频ID
取消公共视频广场资源收藏:
boolean cancelSquareVideoFavorite(int squareId); 该接口用于应用取消公共视频广场资源收藏
参数squareId为公共视频广场视频ID
获取收藏的公共视频资源:
List
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
返回RemoteFileInfo列表,RemoteFileInfo属性如下:
type: 文件类型:0为报警录像,1为普通录像
startTime:开始时间
stopTime:结束时间
filename:文件名
fileSize:文件大小
回放录像、截屏接口:
同预览接口类似
报警推送接口:
推送接入流程:
1.登录成功后开启推送服务
AndroidpnUtils.startPushServer(context)