存储卡
更新时间:2026-10-29 10:05:40
SD卡存储录像相关接口与【通用版-存储卡】相同,区别在于专属版在构建请求对象时,需要将 deviceType 设置为 1,用于区分专属版设备。
// 导入存储卡回看头文件
import { RTCXSDCardPlayback, RTCXPlaybackTypes, RTCXMediaType } from 'rtcxsdk'
专属版目前支持如下接口:
export interface IRTCXSDCardPlayback {
/**
* 按时间段获取SD卡录制文件
*/
recordTimeQuery(params: SDCardRecordQueryReq): Promise<RecordQueryRsp>
/**
* 按文件获取SD卡录制文件
*/
recordFileQuery(params: SDCardRecordQueryReq): Promise<SDCardRecordFileQueryRsp>
/**
* 按时间段获取事件文件
*/
eventTimeQuery(params: SDCardEventQueryReq): Promise<EventQueryRsp>
/**
* 按月查询录制统计
*/
monthRecordQuery(monthQueryReq: SDCardRecordMonthQueryReq): Promise<MonthQueryRsp>
}
SD卡录制列表
时间跨度不能超过7天,开始时间不能大于结束时间。
备注:该接口默认一次性返回 beginTime 和 endTime 时间段内所有数据,如果时间跨度较大,查询可能比较耗时,推荐按天查询,即 0 点 - 24 点,或者通过分页查询。
- 分页规则:
- 设置
pageSize参数,如pageSize = 50; - 当响应的
RecordQueryRsp.nextValid = true,说明可以继续查询下一页数据,否则没有更多数据; - 查询下一页时,入参
beginTime为上一次的beginTime,endTime为上一次的RecordQueryRsp.nextEndTime。
- 设置
请求入参说明:
compressAck参数可控制接口返回数据是否需要压缩(压缩处理可以传输更多数据),如果设备支持压缩,推荐设置compressAck = 1;- 判断设备是否支持压缩,可以通过设备能力集属性
deviceSdkAbility中的[1,2,4,7]是否包含 7 判断。
const reqParams: RTCXPlaybackTypes.SDCardRecordQueryReq = {
productKey: this.deviceInfo?.productKey!!,
deviceName: this.deviceInfo?.deviceName!!,
beginTime: startOfDate(this.selectedDate).getTime(),
endTime: endOfDate(this.selectedDate).getTime(),
pageSize: 1000,
deviceType: 1 // 1:专属版设备
}
try {
const rsp = await RTCXSDCardPlayback.recordTimeQuery(reqParams)
this.dataList = rsp.recordFileList
} catch (e) {
showToast(this, `获取数据失败${e}`)
}
SD卡事件列表
分页规则与录制列表一致,下一页结束时间取 EventQueryRsp.nextEndTime。
const reqParams: RTCXPlaybackTypes.SDCardEventQueryReq = {
productKey: this.deviceInfo?.productKey!!,
deviceName: this.deviceInfo?.deviceName!!,
beginTime: startOfDate(this.selectedDate).getTime(),
endTime: endOfDate(this.selectedDate).getTime(),
pageSize: 1000,
deviceType: 1 // 1:专属版设备
}
try {
const rsp = await RTCXSDCardPlayback.eventTimeQuery(reqParams)
this.dataList = rsp.eventList
} catch (e) {
showToast(this, `获取数据失败${e}`)
}
SD卡文件列表
const reqParams: RTCXPlaybackTypes.SDCardRecordQueryReq = {
productKey: this.deviceInfo?.productKey!!,
deviceName: this.deviceInfo?.deviceName!!,
beginTime: startOfDate(this.selectedDate).getTime(),
endTime: endOfDate(this.selectedDate).getTime(),
pageSize: 30,
deviceType: 1 // 1:专属版设备
}
try {
const rsp = await RTCXSDCardPlayback.recordFileQuery(reqParams)
this.dataList = rsp.recordFileList
} catch (e) {
showToast(this, `获取数据失败${e}`)
}
SD卡月录像列表
const reqParams: RTCXPlaybackTypes.SDCardRecordMonthQueryReq = {
productKey: this.deviceInfo?.productKey!!,
deviceName: this.deviceInfo?.deviceName!!,
year: this.selectedDate.getFullYear(),
month: this.selectedDate.getMonth() + 1,
deviceType: 1 // 1:专属版设备
}
try {
const rsp = await RTCXSDCardPlayback.monthRecordQuery(reqParams)
} catch (e) {
showToast(this, `获取数据失败${e}`)
}
SD卡录制播放
播放器初始化时设置 deviceType = 1,具体见【音视频播放】。
const playbackInfo: RTCXMediaType.IPlaybackInfo = {
startTime: beginT!,
endTime: endT!,
playbackType: RTCXMediaType.PlaybackTypeEnum.SDCardRecord
}
this.playerController?.seekToTime(playbackInfo)
SD卡文件播放
const playbackInfo: RTCXMediaType.IPlaybackInfo = {
startTime: beginT!,
endTime: endT!,
playbackType: RTCXMediaType.PlaybackTypeEnum.SDCardRecord,
sdFileName: sdFileName,
sdFileStartTime: sdFileStartTime
}
this.playerController?.seekToTime(playbackInfo)
SD卡事件播放
const playbackInfo: RTCXMediaType.IPlaybackInfo = {
startTime: beginT!,
endTime: endT!,
playbackType: RTCXMediaType.PlaybackTypeEnum.SDCardEvent
}
this.playerController?.seekToTime(playbackInfo)
当SD卡事件播放时,播放器不会主动上抛事件播放结束的状态,该逻辑需要 APP 自行实现:
- 通过定时器(定时间隔设置 1 秒)实时调用播放器
getCurrentTime(): number方法获取当前播放时间currentTime; - 使用
currentTime与正在播放事件的结束时间endTime比较,如果currentTime >= endTime,则认为该事件播放结束; - 判定事件播放结束后,调用播放器
releasePlayer(): void方法主动结束事件播放,否则播放器会一直往下播。