更新时间:2024-06-17 02:34:01下载pdf
涂鸦为智能摄像机 (IPC) 提供云存储服务,可以将 IPC 录制的视频上传到云端。
云存储服务过期后,已经上传的云视频还会保留一段时间,通常是 7 天。之后,云视频会被全部删除。
获取有云存储视频的日期。
获取指定日期的相关数据,包括云存储事件、时间轴数据和鉴权信息等。
选择一个云存储事件或者一个时间点,开始播放云视频。
演示录屏 | 类 | 接口 | 描述 |
---|---|---|---|
IThingIPCCloud | isSupportCloudStorage | 是否支持云存储 | |
IThingIPCCloud | createCloudCamera | 创建云存储 camera 对象。一个设备 ID 对应一个 camera 对象 | |
IThingCloudCamera | queryCloudServiceStatus | 查询云存储状态
|
|
IThingCloudCamera | getTimeLineInfo | 获取指定时间内的视频片段 | |
IThingCloudCamera | playCloudDataWithStartTime | 开始播放视频 | |
IThingCloudCamera | stopPlayCloudVideo | 停止播放视频 |
由于 IThingCloudCamera
部分 SDK API 是异步实现,建议不要直接在调用方法的回调线程里调用该对象的其他 API,否则可能会造成 ANR。
void queryCloudServiceStatus(String devId, IThingResultCallback<CloudStatusBean> callback);
void getTimeLineInfo(String devId, long timeGT, long timeLT, IThingResultCallback<List<TimePieceBean>> callback);
void playCloudDataWithStartTime(long mStartTime, long mEndTime, boolean isEvent, OperationCallBack callback, OperationCallBack playFinishedCallBack);
Java:
// 查询是否支持云存储
IThingIPCCloud cloud = ThingIPCSdk.getCloud();
if (cloud != null) {
isSupportCloudStorage = cloud.isSupportCloudStorage(devId);
}
// 创建 camera 对象
IThingCloudCamera cloudCamera;
if (cloud != null) {
cloudCamera = cloud.createCloudCamera();
}
// 设备初始化
cloudCamera.createCloudDevice(cachePath, devId);
ThingCameraView mVideoView = findViewById(R.id.camera_video_view);
// 为渲染视图容器设置回调
mVideoView.setViewCallback(new AbsVideoViewCallback() {
@Override
public void onCreated(Object view) {
super.onCreated(view);
//渲染视图构造完成时,为 IThingCloudCamera 绑定渲染视图
if (null != cloudCamera){
cloudCamera.generateCloudCameraView(view);
}
}
});
// 构造渲染视图
mVideoView.createVideoView(devId);
// 向 IThingCloudCamera 注册监听器,否则无法正常显示画面
cloudCamera.registorOnP2PCameraListener(new AbsP2pCameraListener() {
@Override
public void onSessionStatusChanged(Object camera, int sessionId, int sessionStatus) {
super.onSessionStatusChanged(camera, sessionId, sessionStatus);
}
});
// 查询云存储开通状态
cloudCamera.queryCloudServiceStatus(devId, new IThingResultCallback<CloudStatusBean>() {
@Override
public void onSuccess(CloudStatusBean result) {
//Get cloud storage status
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
// 获取视频片段
CloudDayBean dayBean = dayBeanList.get(0);
cloudCamera.getTimeLineInfo(devId, dayBean.getCurrentStartDayTime(), dayBean.getCurrentDayEndTime(), new IThingResultCallback<List<TimePieceBean>>() {
@Override
public void onSuccess(List<TimePieceBean> result) {
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
// 播放片段
cloudCamera.playCloudDataWithStartTime(startTime, endTime, isEvent,
new OperationCallBack() {
@Override
public void onSuccess(int sessionId, int requestId, String data, Object camera) {
// 播放中的回调, playing
}
@Override
public void onFailure(int sessionId, int requestId, int errCode, Object camera) {
}
}, new OperationCallBack() {
@Override
public void onSuccess(int sessionId, int requestId, String data, Object camera) {
//播放完成的回调, playCompleted
}
@Override
public void onFailure(int sessionId, int requestId, int errCode, Object camera) {
}
});
// 停止播放
cloudCamera.stopPlayCloudVideo(new OperationDelegateCallBack() {
@Override
public void onSuccess(int sessionId, int requestId, String data) {
}
@Override
public void onFailure(int sessionId, int requestId, int errCode) {
}
});
// 在页面关闭时释放 camera 对象
// 反初始化
cloudCamera.deinitCloudCamera();
// 注销监听
cloudCamera.removeOnP2PCameraListener();
// 销毁
cloudCamera.destroy();
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈