跳到主要内容
版本:4.0.0

事件监听相关方法

StrmWsApi 对象创建后,可以根据需要调用添加事件监听器方法,监听所关注的事件。

addEventListener

function addEventListener(type: string, listener: Handler<any>): void {
}

添加事件监听器。

参数

参数名数据类型必要说明
typestringY事件类型。为 StrmEvents 系列常量之一
listenerHandler<any>Y事件处理器

事件类型

常量ID字符串值回调的事件类型说明
EVENT_sessionCreatedsessionCreatedSessionCreatedEvent会话建立通知
EVENT_sessionInvalidsessionInvalidSessionInvalidEvent会话失效通知
EVENT_connectionLostconnectionLost(无)WebSocket 连接断开通知
EVENT_strmNotifstrmNotifStrmNotif媒体状态变更通知
EVENT_avUploadNotifavUploadNotifAvUploadNotif远程录像上传状态变更通知
SessionCreatedEvent 会话建立通知
属性名数据类型必要说明
firstTimebooleanY是否第一次成功建立会话
SessionInvalidEvent 会话失效通知
属性名数据类型必要说明
apiStrmWsApiYAPI 对象
tokenstringY所要失效的令牌
StrmNotif 媒体状态变更通知
属性名数据类型必要说明
instIdstringY媒体服务实例ID。此ID从媒体服务的运行配置中取得,可由用户配置,应为URL-safe字符串。
actstringY通知的类型:
  • sent: 下发指令(当终端未及时推流时,服务端可能多次下发指令,因此此通知也可能多次推送)。
  • failed: 终端指令失败(终端不在线或终端应答提出指令已经失败)。
  • id: 终端开始推流。
  • ready: 流已经准备好,此时客户端可以打开流URL(URL由playUrl属性指出)。注意:用异步模式打开实时音视频播放时,如果目标通道已经有其他请求打开,则POST /strm/live/open请求返回的对象的ready将为true。返回后,服务端不会发送actready的流媒体状态通知。
  • qr: 终端媒体流网络传输质量报告。在接收终端媒体流过程中,媒体服务将定时产生此报告。企业应用可据此向终端发出实时音视频传输状态通知(0x9105)。此通知不需推送到客户端。
  • closed: 流已经关闭,如果客户端此时仍在播放,则应停止播放。具体关闭原因请检查closeCausecloseReason属性。注意:流关闭并不意味着终端已经关闭码流,如果有其他请求仍在使用码流,则终端码流将仍然保持推流,只是当前的请求ID(reqId)已经关闭、失效。
reqIdstring请求ID。
typstringY流的类型:
  • live: 表示流为直播流
  • replay: 表示流为回放流
simNostringY终端识别号
chanintY音视频逻辑通道号(参见JT/T 1076-2016 表2)
playUrlstring流媒体播放URL。仅当act == ready时有效
wsUrlstringWebSocket地址,用于对讲时客户端提交音频数据。此地址使用stomp协议。仅当请求的流类型为实时流,且数据类型(dataTyp)为2: 对讲时有效
taUrlstringWebSocket地址,用于对讲时客户端提交音频数据。此地址使用二进制websocket协议。仅当请求的流类型为实时流,且数据类型(dataTyp)为2: 对讲时有效
mediaTypstring流的媒体类型:
  • av: 音频和视频
  • a: 仅音频
  • v: 仅视频
。仅当 actready时有效
lostRateint丢包率。0-100。仅当act == qr时有效。
closeCauseint流关闭的原因代码:
  • 1: 客户端请求关闭流
  • 2: 终端码流断开
  • 3: (未使用)
  • 4: 服务端发生未处理的异常
  • 5: 客户端流请求保持超时
  • 6: 终端未能在一定时间内推流
  • 7: 终端媒体格式错误或不能识别
  • 12: 当客户端成功请求打开一个流后,如果在配置的时间内(默认1分钟)未消费。
该属性仅当act == closed时有效
closeReasonstring流关闭的原因,文字信息。该属性仅当act == closed时有效
acint源音频编码格式。仅当act == ready时且媒体中含有音频时有效。为下列常量之一:
  • 65536: PCM
  • 65542: G711-U
  • 65543: G711-A
  • 69633: ADPCM
  • 69667: G726
  • 86018: AAC
aBitrateint音频码率。单位:位/秒。仅当act == ready时且媒体中含有音频时有效。
vcint源视频编码格式。仅当act == ready时且媒体中含有视频时有效。为下列常量之一:
  • 27: H264
  • 173: H265
frameRatestring帧率。浮点数,以字符串表示。仅当act == ready时且媒体中含有音频时有效。

changeCodeStrm, pause, resume三个事件主要用于实时播放共享时提示用户,这样其他控制客户端执行切换码流、暂停流、恢复流时,当前客户端能够提示用户,使得用户能够了解码流发生变化的原因。

StrmNotif 各种通知类型使用的属性

下表表示各种类型(act) 的通知是否使用reqId, playUrl, wsUrl, waUrl, taUrl, mediaTyp, lostRate, closeCause, closeReason 等属性。对应格子空的,表示不使用该属性。

actreqIdplayUrlwsUrltaUrlmediaTyplostRatecloseCause/closeReasonacaBitRatevcframeRate
sent使用------
failed使用------
id使用------
ready使用使用使用当请求为对讲时使用使用--使用使用使用使用
qr-----使用-
closed使用-----使用
AvUploadNotif 远程录像上传状态变更通知
属性数据类型必要说明
reqIdstringY请求ID。上传远程录像请求 (POST /strm_media/stored/upload)接口返回的请求ID(reqId)
simNostringY终端识别号
stintY录像上传状态代码:
1: 请求已创建
2: 终端已经应答
3: 上传中
4: 上传已完成
5: 失败
6: 已经取消
7: 超时
uploadedSzint已上传文件大小。当(st == 3)或(st == 4)时出现本属性
fileNamestring文件名。仅当st == 4时出现本属性
urlstring下载URL。仅当st == 4时出现本属性
uploadTmstring上传完成时间。格式:yyyy-MM-dd HH:mm:ss。仅当st == 4时出现本属性

removeEventListener

function removeEventListener(type: string, listener: Handler<any>): void {
}

移除事件监听器。

参数

参数名数据类型必要说明
typestringY事件类型。为 StrmEvents 系列常量之一
listenerHandler<any>Y事件处理器

addStrmNotifListener

function addStrmNotifListener(listener: Handler<StrmNotif>): void {
}

添加媒体状态变更通知。通常在事件处理方法中针对 StrmNofit.ACT__strmReady 进行处理。本方法等同于调用 addEventListener(StrmEvents.EVENT_strmNotif, listener)

参数

参数名数据类型必要说明
listenerHandler<StrmNotif>Y事件处理器

removeStrmNotifListener

function removeStrmNotifListener(listener: Handler<StrmNotif>): void {
}

移除媒体状态变更通知。本方法等同于调用 removeEventListener(StrmEvents.EVENT_strmNotif, listener)

参数

参数名数据类型必要说明
listenerHandler<StrmNotif>Y事件处理器

addSessionCreatedListener

function addSessionCreatedListener(listener: Handler<SessionCreatedEvent>): void {
}

添加会话创建事件监听器。本方法等同于调用 addEventListener(StrmEvents.EVENT_sessionCreated, listener)

参数

参数名数据类型必要说明
listenerHandler<SessionCreatedEvent>Y事件处理器

removeSessionCreatedListener

function removeSessionCreatedListener(listener: Handler<SessionCreatedEvent>) {
}

移除会话创建事件监听器。本方法等同于调用 removeEventListener(StrmEvents.EVENT_sessionCreated, listener)

参数

参数名数据类型必要说明
listenerHandler<SessionCreatedEvent>Y事件处理器

addSessionInvalidListener

function addSessionInvalidListener(listener: Handler<SessionInvalidEvent>): void {
}

添加会话失效事件监听器。本方法等同于调用 addEventListener(StrmEvents.EVENT_sessionInvalid, listener)

参数

参数名数据类型必要说明
listenerHandler<SessionInvalidEvent>Y事件处理器

removeSessionInvalidListener

function removeSessionInvalidListener(listener: Handler<SessionInvalidEvent>): void {
}

移除会话失效事件监听器。本方法等同于调用 removeEventListener(StrmEvents.EVENT_sessionInvalid, listener)

参数

参数名数据类型必要说明
listenerHandler<SessionInvalidEvent>Y事件处理器