云回看
更新时间:2025-06-16 16:58:02
云端存储录像与事件
object CloudPlayback{
/**
* 查询录制列表
*
* @param params [RecordQueryReq]
* @param listener [OnResultListener]<[RecordQueryRsp]>
*/
fun recordQuery(params: RecordQueryReq, listener: OnResultListener<RecordQueryRsp>)
/**
* 获取录制播放地址
*
* @param vodUrlGetReq [VodUrlGetReq]
* @param listener [OnResultListener]<[VodUrlRsp]>
*/
fun getVodPlayUrl(vodUrlGetReq: VodUrlGetReq, listener: OnResultListener<VodUrlRsp>)
/**
* 查询录制统计
*
* @param monthQueryReq [MonthQueryReq]
* @param listener [OnResultListener]<[MonthQueryRsp]>
*/
fun monthRecordQuery(monthQueryReq: MonthQueryReq, listener: OnResultListener<MonthQueryRsp>)
/**
* 查询录制事件
*
* @param params [EventQueryReq]
* @param listener [OnResultListener]<[EventQueryRsp]>
*/
fun eventQuery(params: EventQueryReq, listener: OnResultListener<EventQueryRsp>)
/**
* 获取事件播放地址
*
* @param vodUrlGetReq [VodUrlGetReq]
* @param listener [OnResultListener]<[VodUrlRsp]>
*/
fun getEventPlayUrl(vodUrlGetReq: VodUrlGetReq, listener: OnResultListener<VodUrlRsp>)
/**
* 查询事件统计
*
* @param monthQueryReq [MonthQueryReq]
* @param listener [OnResultListener]<[MonthQueryRsp]>
*/
fun monthEventQuery(monthQueryReq: MonthQueryReq, listener: OnResultListener<MonthQueryRsp>)
/**
* 录制删除
*
* @param recordDeleteReq [RecordDeleteReq]
* @param listener [OnResultListener]<Any>
*/
fun recordDelete(recordDeleteReq: RecordDeleteReq, listener: OnResultListener<Any>)
/**
* 事件批量删除
*
* @param iotId 设备ID
* @param eventList List<[TimelineEventInfo]>
* @param listener [OnResultListener]<Any?>
*/
fun eventBatchDelete(iotId: String, eventList: List<TimelineEventInfo>, listener: OnResultListener<Any?>)
/**
* 获取设备事件描述(查最新一条数据时间,做显示小红点使用)
*
* @param descReq
* @param listener [OnResultListener]<[DeviceDescRsp]>
*/
fun getDeviceEventDesc(descReq: DeviceEventDescReq, listener: OnResultListener<DeviceDescRsp>)
/**
* 消息列表(消息中心)
*
* @param params [EventQueryReq]
* @param listener [OnResultListener]<[EventQueryRsp]>
*/
fun msgCenterEventQuery(params: EventQueryReq, listener: OnResultListener<EventQueryRsp>)
/**
* 消息查询统计
*
* @param monthQueryReq [MonthQueryReq]
* @param listener [OnResultListener]<[MonthQueryRsp]>
*/
fun msgEventMonthQuery(monthQueryReq: MonthQueryReq, listener: OnResultListener<MonthQueryRsp>)
/**
* 获取设备消息描述(查最新一条数据时间,做显示小红点使用)
*
* @param descReq [DeviceMsgDescReq]
* @param listener [OnResultListener]<[DeviceDescRsp]>
*/
fun getDeviceMsgDesc(descReq: DeviceMsgDescReq, listener: OnResultListener<DeviceDescRsp>)
/**
* 消息批量删除
*
* @param iotId 设备ID
* @param eventList List<[TimelineEventInfo]>
* @param listener [OnResultListener]<Any?>
*/
fun msgBatchDelete(iotId: String, eventList: List<TimelineEventInfo>, listener: OnResultListener<Any?>)
}
录制列表查询
时间跨度不能超过7天,开始时间不能大于结束时间
import com.polaris.iot.appsdk.libplayback.CloudPlayback;
import com.polaris.iot.appsdk.libplayback.model.EventQueryReq;
import com.polaris.iot.appsdk.libplayback.model.EventQueryRsp;
import com.polaris.iot.appsdk.libplayback.model.RecordDeleteReq;
import com.polaris.iot.appsdk.libplayback.model.RecordQueryReq;
import com.polaris.iot.appsdk.libplayback.model.RecordQueryRsp;
import com.polaris.iot.appsdk.libplayback.model.RecordInfo;
import com.polaris.iot.appsdk.libplayback.model.TimelineEventInfo;
import com.polaris.iot.appsdk.libplayback.model.TimelineRecordInfo;
import com.polaris.iot.appsdk.libcommon.constants.IoTSDKError;
import com.polaris.iot.appsdk.libcommon.hook.OnResultListener;
String iotId = ""
long endTime = System.currentTimeMillis();
long beginTime = endTime - 6 * 3600 * 1000;
final RecordQueryReq recordQueryReq = new RecordQueryReq(iotId, beginTime, endTime);
CloudPlayback.recordQuery(recordQueryReq, new OnResultListener<RecordQueryRsp>() {
@Override
public void onError(@NonNull IoTSDKError error) {
}
@Override
public void onResult(RecordQueryRsp result) {
final List<TimelineRecordInfo> RecordInfoList = result.getRecordFileList();
}
});
录制播放地址获取
多目设备需要区分镜头时,需要传递lensId
import com.polaris.iot.appsdk.libplayback.CloudPlayback;
import com.polaris.iot.appsdk.libplayback.model.VodUrlGetReq
import com.polaris.iot.appsdk.libplayback.model.VodUrlRsp
CloudPlayback.getVodPlayUrl(vodUrlGetReq, object : OnResultListener<VodUrlRsp> {
override fun onResult(result: VodUrlRsp) {
returnResult[0] = result.vodUrl
}
override fun onError(error: IoTSDKError) {
}
})
录制按每天维度查询数量
可在日历上显示哪天有录制
import com.polaris.iot.appsdk.libplayback.CloudPlayback;
import com.polaris.iot.appsdk.libplayback.model.VodUrlGetReq
import com.polaris.iot.appsdk.libplayback.model.VodUrlRsp
import com.polaris.iot.appsdk.libplayback.model.MonthQueryItem;
String iotId = "设备唯一ID";
long endTime = System.currentTimeMillis();
long beginTime = endTime - 3600L * 24 * 1000 * 30;
MonthQueryReq params = new MonthQueryReq(iotId, beginTime, endTime, TimeZoneUtils.getTimeZoneSetting().getStrTimeZone());
CloudPlayback.monthRecordQuery(params, new OnResultListener<MonthQueryRsp>() {
@Override
public void onError(@NonNull IoTSDKError error) {
}
@Override
public void onResult(MonthQueryRsp result) {
List<MonthQueryItem> list = result.getDayCntList()
}
});
录制删除
import com.polaris.iot.appsdk.libplayback.CloudPlayback;
import com.polaris.iot.appsdk.libplayback.model.RecordDeleteReq;
String iotId = "";
long etime = System.currentTimeMillis();
long stime = etime - 3600* 1000;
RecordDeleteReq recordQueryReq = new RecordDeleteReq(iotId, stime, etime);
CloudPlayback.recordDelete(recordQueryReq, new OnResultListener<Object>() {
@Override
public void onResult(Object result) {
showToast("删除录制成功");
}
@Override
public void onError(@NonNull IoTSDKError error) {
showToast("删除录制失败");
}
});
事件列表查询
仅有录制事件数据,一般用于timeline播放使用
时间跨度不能超过7天,开始时间不能大于结束时间
import com.polaris.iot.appsdk.libplayback.CloudPlayback;
import com.polaris.iot.appsdk.libplayback.model.EventQueryReq;
import com.polaris.iot.appsdk.libplayback.model.EventQueryRsp;
import com.polaris.iot.appsdk.libplayback.model.RecordDeleteReq;
import com.polaris.iot.appsdk.libplayback.model.RecordQueryReq;
import com.polaris.iot.appsdk.libplayback.model.RecordQueryRsp;
import com.polaris.iot.appsdk.libplayback.model.RecordInfo;
import com.polaris.iot.appsdk.libplayback.model.TimelineEventInfo;
import com.polaris.iot.appsdk.libplayback.model.TimelineRecordInfo;
import com.polaris.iot.appsdk.libcommon.constants.IoTSDKError;
import com.polaris.iot.appsdk.libcommon.hook.OnResultListener;
String iotId = ""
long endTime = System.currentTimeMillis();
long beginTime = endTime - 6 * 3600 * 1000;
final EventQueryReq eventQueryReq = new EventQueryReq(mPlayDeviceInfo .getIotId(), beginTime, endTime);
CloudPlayback.eventQuery(eventQueryReq, new OnResultListener<EventQueryRsp>() {
@Override
public void onResult(EventQueryRsp result) {
final List<TimelineEventInfo> eventInfoList = result.getEventList();
}
@Override
public void onError(IoTSDKError error) {
IoTLogger.e(TAG, "CloudPlayback.eventQuery", error);
}
});
TimelineEventInfo
/**
* Timeline event info
*
* @property beginTime
* @property endTime
* @property eventType
* @constructor Create empty Timeline event info
*/
data class TimelineEventInfo(
var beginTime: Long = 0,
var endTime: Long? = null,
var eventType: Int = 0,
) {
/**
* 事件ID
*/
var eventId: Long = 0
/**
* 事件缩略图
*/
var imgUrl: String? = null
/**
* 扩展数据
*/
var extraData: String? = null
var isSelected: Boolean? = false
/**
* 镜头ID
*/
var lensId: Int? = null
/**
* 数据类型 0:纯消息类型,1:录像类型,2:图片类型
*/
var dataType: Int? = null
/**
* 自定义事件的标识符
*
*/
var identifier: String? = null
}
事件播放地址获取
多目设备需要区分镜头时,需要传递lensId
import com.polaris.iot.appsdk.libplayback.CloudPlayback;
import com.polaris.iot.appsdk.libplayback.model.VodUrlGetReq
import com.polaris.iot.appsdk.libplayback.model.VodUrlRsp
CloudPlayback.getEventPlayUrl(vodUrlGetReq, object : OnResultListener<VodUrlRsp> {
override fun onResult(result: VodUrlRsp) {
returnResult[0] = result.vodUrl
}
override fun onError(error: IoTSDKError) {
}
})
事件按每天维度查询数量
可在日历上显示哪天有事件
import com.polaris.iot.appsdk.libplayback.CloudPlayback;
import com.polaris.iot.appsdk.libplayback.model.VodUrlGetReq
import com.polaris.iot.appsdk.libplayback.model.VodUrlRsp
import com.polaris.iot.appsdk.libplayback.model.MonthQueryItem;
String iotId = "设备唯一ID";
long endTime = System.currentTimeMillis();
long beginTime = endTime - 3600L * 24 * 1000 * 30;
MonthQueryReq params = new MonthQueryReq(iotId, beginTime, endTime, TimeZoneUtils.getTimeZoneSetting().getStrTimeZone());
CloudPlayback.monthEventQuery(params, new OnResultListener<MonthQueryRsp>() {
@Override
public void onError(@NonNull IoTSDKError error) {
}
@Override
public void onResult(MonthQueryRsp result) {
List<MonthQueryItem> list = result.getEventCntList()
}
});