概述
TXIoTMonitorSession 负责拉取设备实时监控画面,包括开始/停止会话、远端拉流与清晰度切换、与设备进行对讲、云台控制、截图与本地录制。TXIoTMonitorSession 通过 TXIoTEngine.getMonitorSession 获取实例,需在登录成功后调用。
说明:
回调模型:所有 Listener 回调在主线程触发,公共类型与错误码定义见 TXIoTEngineDef。渲染视图参数
TXView 为 string 类型,传 ArkUI XComponent 组件的 id(该 XComponent 需设置 type: XComponentType.SURFACE、libraryname: 'liteavsdk')。方法列表
方法签名 | 描述 |
addListener | 添加实时监控事件监听器。 |
removeListener | 移除实时监控事件监听器。 |
startSession | 开启实时监控。 |
stopSession | 停止实时监控。 |
startRemoteView | 开始渲染远端视频流。 |
stopRemoteView | 停止渲染远端视频流。 |
switchRemoteStream | 切换远端视频流类型(高清/标清)。 |
muteRemoteAudio | 静音/取消静音单路远端音频。 |
muteAllRemoteAudio | 静音/取消静音所有远端音频。 |
startLocalAudio | 开启本地音频采集和推送(用于实现对讲功能)。 |
stopLocalAudio | 关闭本地音频采集和推送。 |
muteLocalAudio | 静音/取消静音本地音频。 |
startLocalVideo | 开启本地视频采集和推送。 |
stopLocalVideo | 关闭本地视频采集和推送。 |
sendPTZCommand | 发送云台控制指令。 |
takeSnapshot | 对当前正在观看的通道进行截图。 |
startLocalRecording | 开始对当前正在观看的通道进行录像。 |
stopLocalRecording | 停止本地录像。 |
addListener
addListener
addListener | (listener: TXIoTMonitorSessionListener): void |
添加实时监控事件监听器。
参数 | 描述 |
listener | TXIoTMonitorSessionListener;监听器实例。 |
removeListener
removeListener
removeListener | (listener: TXIoTMonitorSessionListener): void |
移除实时监控事件监听器。
参数 | 描述 |
listener | TXIoTMonitorSessionListener;监听器实例。 |
startSession
startSession
startSession | (deviceId: TXIoTDeviceId): void |
开启实时监控。
参数 | 描述 |
deviceId |
stopSession
stopSession
stopSession | (): void |
停止实时监控。
startRemoteView
startRemoteView
startRemoteView | (channelId: number, streamType: TXIoTStreamType, view: TXView): void |
开始渲染远端视频流。
参数 | 描述 |
channelId | number;通道 ID,从 0 开始计数;单通道设备填 0。 |
streamType | TXIoTStreamType;视频流类型(高清/标清)。 |
view | TXView(string);视频渲染视图,传 XComponent 组件的 id。 |
stopRemoteView
stopRemoteView
stopRemoteView | (channelId: number): void |
停止渲染远端视频流。
参数 | 描述 |
channelId | number;通道 ID。 |
switchRemoteStream
switchRemoteStream
switchRemoteStream | (channelId: number, streamType: TXIoTStreamType): void |
切换远端视频流类型(高清/标清)。
参数 | 描述 |
channelId | number;通道 ID。 |
streamType | TXIoTStreamType;视频流类型(高清/标清)。 |
muteRemoteAudio
muteRemoteAudio
muteRemoteAudio | (channelId: number, mute: boolean): void |
静音/取消静音单路远端音频。
参数 | 描述 |
channelId | number;通道 ID。 |
mute | boolean;是否静音。 |
muteAllRemoteAudio
muteAllRemoteAudio
muteAllRemoteAudio | (mute: boolean): void |
静音/取消静音所有远端音频。
参数 | 描述 |
mute | boolean;是否静音。 |
startLocalAudio
startLocalAudio
startLocalAudio | (): void |
开启本地音频采集和推送(用于实现对讲功能)。
stopLocalAudio
stopLocalAudio
stopLocalAudio | (): void |
停止本地音频采集和推送。
muteLocalAudio
muteLocalAudio
muteLocalAudio | (mute: boolean): void |
静音/取消静音本地音频。
参数 | 描述 |
mute | boolean;是否静音。 |
startLocalVideo
startLocalVideo
startLocalVideo | (view: TXView, videoEncoderParams: TXIoTVideoEncoderParams): void |
开启本地视频采集和推送。
参数 | 描述 |
view | TXView(string);本地预览渲染视图,传 XComponent 组件的 id。 |
videoEncoderParams | TXIoTVideoEncoderParams;视频编码参数。 |
stopLocalVideo
stopLocalVideo
stopLocalVideo | (): void |
停止本地视频采集和推送。
sendPTZCommand
sendPTZCommand
sendPTZCommand | (channelId: number, command: TXIoTPTZCommand, speed: number): void |
发送云台控制指令。
参数 | 描述 |
channelId | number;通道 ID。 |
command | TXIoTPTZCommand;云台控制指令。 |
speed | number;云台运动速度。 |
takeSnapshot
takeSnapshot
takeSnapshot | (channelId: number): void |
对当前正在观看的通道进行截图。
参数 | 描述 |
channelId | number;通道 ID。 |
说明:
截图结果通过
onSnapshotComplete 回调返回,成功时 image 为 image.PixelMap 对象(@ohos.multimedia.image),失败时为 null。startLocalRecording
startLocalRecording
startLocalRecording | (channelId: number, params: TXIoTLocalRecordingParams): void |
开始对当前正在观看的通道进行录像。
参数 | 描述 |
channelId | number;通道 ID。 |
params | TXIoTLocalRecordingParams;本地录像参数。 |
stopLocalRecording
stopLocalRecording
stopLocalRecording | (channelId: number): void |
停止本地录像。
参数 | 描述 |
channelId | number;通道 ID。 |
监控事件回调
TXIoTMonitorSessionListener 为 ArkTS 接口,所有回调方法均为可选,调用方可按需实现。TXIoTMonitorSessionListener
回调方法 | 说明 |
onError(channelId: number, errCode: TXIoTErrorCode, errMsg: string) | 监控发生错误。 |
onSessionEstablished() | 监控会话建立成功。 |
onSessionReconnecting() | 会话重连中。 |
onSessionRecovery() | 会话恢复成功。 |
onRemoteStreamAvailable(channelId: number, available: boolean) | 远端流可用性变化。 |
onRenderFirstFrame(channelId: number) | 首帧渲染完成。 |
onPlayStateChanged(channelId: number, state: TXIoTPlayState) | 播放状态变化。 |
onSnapshotComplete(channelId: number, image: image.PixelMap | null, errCode: TXIoTErrorCode) | 截图完成,成功时 image 非 null。 |
onLocalRecordBegin(channelId: number, errCode: TXIoTErrorCode, storagePath: string) | 本地录像开始。 |
onLocalRecording(channelId: number, durationMs: number, storagePath: string) | 本地录像进行中,周期性回调时长(单位:毫秒)。 |
onLocalRecordComplete(channelId: number, errCode: TXIoTErrorCode, storagePath: string) | 本地录像完成。 |
监控相关数据结构与枚举
TXIoTStreamType
TXIoTStreamType
枚举 | 说明 |
HD | 高清。 |
SD | 标清。 |
TXIoTPTZCommand
TXIoTPTZCommand
枚举 | 说明 |
UP | 上。 |
DOWN | 下。 |
LEFT | 左。 |
RIGHT | 右。 |
ZOOM_IN | 变焦放大。 |
ZOOM_OUT | 变焦缩小。 |
STOP | 停止。 |
TXIoTPlayState
TXIoTPlayState
枚举 | 说明 |
PLAYING | 正在播放。 |
LOADING | 加载中。 |
STOPPED | 已停止。 |
TXIoTVideoResolution
TXIoTVideoResolution
枚举 | 说明 |
RESOLUTION_640_360 | 横屏 640×360。 |
RESOLUTION_960_540 | 横屏 960×540。 |
RESOLUTION_1280_720 | 横屏 1280×720。 |
RESOLUTION_1920_1080 | 横屏 1920×1080。 |
RESOLUTION_360_640 | 竖屏 360×640。 |
RESOLUTION_540_960 | 竖屏 540×960。 |
RESOLUTION_720_1280 | 竖屏 720×1280。 |
RESOLUTION_1080_1920 | 竖屏 1080×1920。 |
TXIoTVideoEncoderParams
TXIoTVideoEncoderParams
字段 | 说明 |
resolution | 视频编码分辨率,见 TXIoTVideoResolution,默认为 RESOLUTION_640_360。 |
TXIoTLocalRecordingParams
TXIoTLocalRecordingParams
字段 | 说明 |
filePath | 录像文件保存路径。 |