更新时间:2023-05-22 06:38:31下载pdf
涂鸦为智能摄像机 (IPC) 提供云存储服务,可以将 IPC 录制的视频上传到云端。
如果云存储服务未开通或者已经过期,就需要先购买云存储服务。
云存储服务过期后,已经上传的云视频还会保留一段时间,通常是 7 天。之后,云视频会被全部删除。
如果云存储服务在有效期:
开通云存储服务可以使用云存储服务 UI 业务包组件,该组件提供了云存储服务开通的 H5 页面和订单展示功能。
ITYCloudCamera
提供了云视频存储相关的接口。
接口说明
创建云存储的实例对象。
ITYCloudCamera createCloudCamera();
示例代码
private ITYCloudCamera cloudCamera;
ITuyaIPCCloud cloud = TuyaIPCSdk.getCloud();
if (cloud != null) {
cloudCamera = cloud.createCloudCamera();
}
接口说明
void queryCloudServiceStatus(String devId, ITuyaResultCallback<CloudStatusBean> callback);
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
callback | 回调方法 |
示例代码
cloudCamera.queryCloudServiceStatus(devId, new ITuyaResultCallback<CloudStatusBean>() {
@Override
public void onSuccess(CloudStatusBean result) {
//Get cloud storage status
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
CloudStatusBean
数据模型
参数 | 说明 |
---|---|
status | 状态码:
|
接口说明
void getCloudDays(String devId, String timezoneId, ITuyaResultCallback<List<CloudDayBean>> callback);
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
timezoneId | 时区 ID |
示例代码
cloudCamera.getCloudDays(devId, TimeZone.getDefault().getID(), new ITuyaResultCallback<List<CloudDayBean>>() {
@Override
public void onSuccess(List<CloudDayBean> result) {
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
CloudDayBean
数据模型
参数 | 说明 |
---|---|
uploadDay | 日期 |
currentDayStart | 对应日期的开始时间,用于获取指定时间内的视频片段 |
currentDayEnd | 对应日期的结束时间,用于获取指定时间内的视频片段 |
接口说明
void getTimeLineInfo(String devId, long timeGT, long timeLT, ITuyaResultCallback<List<TimePieceBean>> callback);
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
timeGT | 10 位时间戳格式的开始时间 |
timeLT | 10 位时间戳格式的结束时间 |
callback | 回调方法 |
示例代码
CloudDayBean dayBean = dayBeanList.get(0);
cloudCamera.getTimeLineInfo(devId, dayBean.getCurrentStartDayTime(), dayBean.getCurrentDayEndTime(), new ITuyaResultCallback<List<TimePieceBean>>() {
@Override
public void onSuccess(List<TimePieceBean> result) {
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
接口说明
void getMotionDetectionInfo(String devId, long timeGT, long timeLT, int offset, int limit, ITuyaResultCallback<List<TimeRangeBean>> callback);
参数说明
参数 | 说明 |
---|---|
devId | 设备 ID |
timeGT | 10 位时间戳格式的开始时间 |
timeLT | 10 位时间戳格式的结束时间 |
offset | 第几页,默认为 0 |
limit | 每次拉取条数,默认为 -1 ,表示所有数据 |
callback | 回调方法 |
示例代码
CloudDayBean dayBean = dayBeanList.get(0);
cloudCamera.getMotionDetectionInfo(devId, dayBean.getCurrentStartDayTime(), dayBean.getCurrentDayEndTime(), offset, limit, new ITuyaResultCallback<List<TimeRangeBean>>() {
@Override
public void onSuccess(List<TimeRangeBean> result) {
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
云存储事件中携带的事件截图是经过加密的,需要通过加密图片组件展示。详情参考 加密图片 云存储事件章节。
本接口已不再维护,您可以使用云存储 UI 业务包开通云存储服务。
接口说明
public void buyCloudStorage(Context mContext, DeviceBean deviceBean, String homeId, ICloudManagerCallback callback) {
CameraCloudManager.getInstance().getCloudStorageUrl(mContext, deviceBean, homeId);
}
参数说明
参数 | 说明 |
---|---|
mContext | 上下文 |
deviceBean | 设备信息 |
homeId | 家庭 ID |
callback | 回调方法 |
示例代码
cameraCloudSDK.buyCloudStorage(CameraCloudStorageActivity.this,
TuyaHomeSdk.getDataInstance().getDeviceBean(devId),
String.valueOf(FamilyManager.getInstance().getCurrentHomeId()), new ICloudManagerCallback() {
@Override
public void onError(int i) {
}
@Override
public void onSuccess(Object o) {
String uri = (String) o;
Intent intent = new Intent(CameraCloudStorageActivity.this, WebViewActivity.class);
intent.putExtra("Uri",uri);
startActivity(intent);
}
});
错误码 | 说明 |
---|---|
10100 | 获取 SECRET 失败 |
10101 | 获取 AUTH 失败 |
10110 | 其他异常 |
10010 | 获取认证信息失败 |
10011 | 获取某天的视频片段(鉴权信息)失败 |
创建设备对象。
接口说明
void createCloudDevice(String cachePath, String devId)
参数说明
参数 | 说明 |
---|---|
cachePath | 缓存路径 |
devId | 设备 ID |
示例代码
cloudCamera.createCloudDevice(cachePath, devId);
接口说明
void deinitCloudCamera();
示例代码
cloudCamera.deinitCloudCamera();
接口说明
public void onDestroy();
示例代码
cloudCamera.onDestroy();
向 ITYCloudCamera
注册监听器,否则无法正常显示画面。
接口说明
void registerP2PCameraListener(AbsP2pCameraListener listener);
参数说明
参数 | 说明 |
---|---|
listener | P2P 回调 |
示例代码
cloudCamera.registerP2PCameraListener(new AbsP2pCameraListener() {
@Override
public void onSessionStatusChanged(Object camera, int sessionId, int sessionStatus) {
super.onSessionStatusChanged(camera, sessionId, sessionStatus);
}
});
接口说明
void removeOnP2PCameraListener();
示例代码
cloudCamera.removeOnP2PCameraListener();
接口说明
void generateCloudCameraView(IRegistorIOTCListener view);
参数说明
参数 | 说明 |
---|---|
view | 播放器组件 |
示例代码
cloudCamera.generateCloudCameraView(mVideoView);
接口说明
void playCloudDataWithStartTime(long mStartTime, long mEndTime, boolean isEvent, OperationCallBack callback, OperationCallBack playFinishedCallBack);
参数说明
参数 | 说明 |
---|---|
mStartTime | 10 位时间戳格式的开始时间 |
mEndTime | 结束时间,一般是这一天的结束时间 |
isEvent | 是否是侦测事件,默认为 false |
callBack | 播放回调 |
playFinishedCallBack | 播放结束回调 |
示例代码
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) {
}
});
接口说明
int pausePlayCloudVideo(OperationDelegateCallBack callBack);
参数说明
参数 | 说明 |
---|---|
callBack | 操作回调 |
示例代码
cloudCamera.pausePlayCloudVideo(new OperationDelegateCallBack() {
@Override
public void onSuccess(int sessionId, int requestId, String data) {
}
@Override
public void onFailure(int sessionId, int requestId, int errCode) {
}
});
接口说明
int resumePlayCloudVideo(OperationDelegateCallBack callBack);
参数说明
参数 | 说明 |
---|---|
callBack | 操作回调 |
示例代码
cloudCamera.resumePlayCloudVideo(new OperationDelegateCallBack() {
@Override
public void onSuccess(int sessionId, int requestId, String data) {
}
@Override
public void onFailure(int sessionId, int requestId, int errCode) {
}
});
接口说明
int stopPlayCloudVideo(OperationDelegateCallBack callBack);
参数说明
参数 | 说明 |
---|---|
callBack | 操作回调 |
示例代码
cloudCamera.stopPlayCloudVideo(new OperationDelegateCallBack() {
@Override
public void onSuccess(int sessionId, int requestId, String data) {
}
@Override
public void onFailure(int sessionId, int requestId, int errCode) {
}
});
接口说明
void startCloudDataDownload(long startTime, long stopTime, String folderPath, String mp4FileName,
OperationCallBack callback, ProgressCallBack progressCallBack, OperationCallBack finishedCallBack);
参数说明
参数 | 说明 |
---|---|
startTime | 需要下载的视频片段的开始时间,10 位时间戳 |
stopTime | 需要下载的视频片段的结束时间,10 位时间戳 |
folderPath | 存储路径 |
mp4FileName | 文件名 |
callback | 操作回调 |
progressCallBack | 下载进度回调 |
finishedCallBack | 下载完成回调 |
接口说明
void stopCloudDataDownload(OperationCallBack callBack);
参数说明
参数 | 说明 |
---|---|
callBack | 操作回调 |
接口说明
void deleteCloudVideo(long timeGT, long timeLT, String timeZone, final ITuyaResultCallback<String> listener);
参数说明
参数 | 说明 |
---|---|
timeGT | 10 位时间戳格式的开始时间 |
timeLT | 结束时间 |
timeZone | 时区 |
listener | 回调方法 |
接口说明
int startRecordLocalMp4(String folderPath, String fileName, OperationDelegateCallBack callBack);
参数说明
参数 | 说明 |
---|---|
folderPath | 文件夹路径 |
fileName | 文件名称 |
callBack | 操作回调 |
示例代码
cloudCamera.startRecordLocalMp4(IPCCameraUtils.recordPath(devId), String.valueOf(System.currentTimeMillis()), new OperationDelegateCallBack() {
@Override
public void onSuccess(int sessionId, int requestId, String data) {
Toast.makeText(CameraCloudStorageActivity.this, "record start success", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(int sessionId, int requestId, int errCode) {
}
});
接口说明
int stopRecordLocalMp4(OperationDelegateCallBack callBack);
参数说明
参数 | 说明 |
---|---|
callBack | 操作回调 |
示例代码
cloudCamera.stopRecordLocalMp4(new OperationDelegateCallBack() {
@Override
public void onSuccess(int sessionId, int requestId, String data) {
Toast.makeText(CameraCloudStorageActivity.this, "record end success", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(int sessionId, int requestId, int errCode) {
}
});
云存储视频播放也提供有声音开关、截图等功能。
接口说明
int getCloudMute();
示例代码
cloudCamera.getCloudMute()
接口说明
void setCloudMute(final int mute, OperationDelegateCallBack callBack);
参数说明
参数 | 说明 |
---|---|
mute | 是否静音:
|
callBack | 操作回调 |
示例代码
cloudCamera.setCloudMute(mute, new OperationDelegateCallBack() {
@Override
public void onSuccess(int sessionId, int requestId, String data) {
soundState = Integer.valueOf(data);
}
@Override
public void onFailure(int sessionId, int requestId, int errCode) {
}
});
接口说明
int snapshot(String absoluteFilePath, OperationDelegateCallBack callBack);
参数说明
参数 | 说明 |
---|---|
absoluteFilePath | 文件地址 |
callBack | 操作回调 |
示例代码
cloudCamera.snapshot(IPCCameraUtils.recordSnapshotPath(devId), new OperationDelegateCallBack() {
@Override
public void onSuccess(int sessionId, int requestId, String data) {
Toast.makeText(CameraCloudStorageActivity.this, "snapshot success", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(int sessionId, int requestId, int errCode) {
}
});
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈