事件监听相关方法
StrmWsApi
对象创建后,可以根据需要调用添加事件监听器方法,监听所关注的事件。
addEventListener
function addEventListener(type: string, listener: Handler<any>): void {
}
添加事件监听器。
参数名 | 数据类型 | 必要 | 说明 |
---|
type | string | Y | 事件类型。为 StrmEvents 系列常量之一 |
listener | Handler<any> | Y | 事件处理器 |
事件类型
SessionCreatedEvent 会话建立通知
属性名 | 数据类型 | 必要 | 说明 |
---|
firstTime | boolean | Y | 是否第一次成功建立会话 |
SessionInvalidEvent 会话失效通知
属性名 | 数据类型 | 必要 | 说明 |
---|
api | StrmWsApi | Y | API 对象 |
token | string | Y | 所要失效的令牌 |
StrmNotif 媒体状态变更通知
属性名 | 数据类型 | 必要 | 说明 |
---|
instId | string | Y | 媒体服务实例ID。此ID从媒体服务的运行配置中取得,可由用户配置,应为URL-safe字符串。 |
act | string | Y | 通知的类型:- ✳
sent : 下发指令(当终端未及时推流时,服务端可能多次下发指令,因此此通知也可能多次推送)。 - ✳
failed : 终端指令失败(终端不在线或终端应答提出指令已经失败)。 - ✳
id : 终端开始推流。 - ✳
ready : 流已经准备好,此时客户端可以打开流URL(URL由playUrl 属性指出)。注意:用异步模式打开实时音视频播放时,如果目标通道已经有其他请求打开,则POST /strm/live/open 请求返回的对象的ready 将为true 。返回后,服务端不会发送act 为ready 的流媒体状态通知。 - ✳
qr : 终端媒体流网络传输质量报告。在接收终端媒体流过程中,媒体服务将定时产生此报告。企业应用可据此向终端发出实时音视频传输状态通知(0x9105 )。此通知不需推送到客户端。 - ✳
closed : 流已经关闭,如果客户端此时仍在播放,则应停止播放。具体关闭原因请检查closeCause 和closeReason 属性。注意:流关闭并不意味着终端已经关闭码流,如果有其他请求仍在使用码流,则终端码流将仍然保持推流,只是当前的请求ID(reqId )已经关闭、失效。
|
reqId | string | | 请求ID。 |
typ | string | Y | 流的类型:live : 表示流为直播流replay : 表示流为回放流
|
simNo | string | Y | 终端识别号 |
chan | int | Y | 音视频逻辑通道号(参见JT/T 1076-2016 表2) |
playUrl | string | | 流媒体播放URL。仅当act == ready 时有效 |
wsUrl | string | | WebSocket地址,用于对讲时客户端提交音频数据。此地址使用stomp协议。仅当请求的流类型为实时流,且数据类型(dataTyp )为2: 对讲 时有效 |
taUrl | string | | WebSocket地址,用于对讲时客户端提交音频数据。此地址使用二进制websocket协议。仅当请求的流类型为实时流,且数据类型(dataTyp )为2: 对讲 时有效 |
mediaTyp | string | | 流的媒体类型: 。仅当 act 为 ready 时有效 |
lostRate | int | | 丢包率。0-100。仅当act == qr 时有效。 |
closeCause | int | | 流关闭的原因代码:1 : 客户端请求关闭流2 : 终端码流断开3 : (未使用)4 : 服务端发生未处理的异常5 : 客户端流请求保持超时6 : 终端未能在一定时间内推流7 : 终端媒体格式错误或不能识别12 : 当客户端成功请求打开一个流后,如果在配置的时间内(默认1分钟)未消费。 该属性仅当act == closed 时有效 |
closeReason | string | | 流关闭的原因,文字信息。该属性仅当act == closed 时有效 |
ac | int | | 源音频编码格式。仅当act == ready 时且媒体中含有音频时有效。为下列常量之一:65536 : PCM65542 : G711-U65543 : G711-A69633 : ADPCM69667 : G72686018 : AAC
|
aBitrate | int | | 音频码率。单位:位/秒。仅当act == ready 时且媒体中含有音频时有效。 |
vc | int | | 源视频编码格式。仅当act == ready 时且媒体中含有视频时有效。为下列常量之一: |
frameRate | string | | 帧率。浮点数,以字符串表示。仅当act == ready 时且媒体中含有音频时有效。 |
changeCodeStrm
, pause
, resume
三个事件主要用于实时播放共享时提示用户,这样其他控制客户端执行切换码流、暂停流、恢复流时,当前客户端能够提示用户,使得用户能够了解码流发生变化的原因。
StrmNotif 各种通知类型使用的属性
下表表示各种类型(act
)
的通知是否使用reqId
, playUrl
, wsUrl
, waUrl
, taUrl
, mediaTyp
, lostRate
, closeCause
, closeReason
等属性。对应格子空的,表示不使用该属性。
act | reqId | playUrl | wsUrl | taUrl | mediaTyp | lostRate | closeCause/closeReason | ac | aBitRate | vc | frameRate |
---|
sent | 使用 | - | - | - | - | - | - | | | | |
failed | 使用 | - | - | - | - | - | - | | | | |
id | 使用 | - | - | - | - | - | - | | | | |
ready | 使用 | 使用 | 使用 | 当请求为对讲时使用 | 使用 | - | - | 使用 | 使用 | 使用 | 使用 |
qr | - | - | - | - | - | 使用 | - | | | | |
closed | 使用 | - | - | - | - | - | 使用 | | | | |
AvUploadNotif 远程录像上传状态变更通知
属性 | 数据类型 | 必要 | 说明 |
---|
reqId | string | Y | 请求ID。上传远程录像请求 (POST /strm_media/stored/upload )接口返回的请求ID(reqId ) |
simNo | string | Y | 终端识别号 |
st | int | Y | 录像上传状态代码:
1 : 请求已创建
2 : 终端已经应答
3 : 上传中
4 : 上传已完成
5 : 失败
6 : 已经取消
7 : 超时 |
uploadedSz | int | | 已上传文件大小。当(st == 3 )或(st == 4 )时出现本属性 |
fileName | string | | 文件名。仅当st == 4 时出现本属性 |
url | string | | 下载URL。仅当st == 4 时出现本属性 |
uploadTm | string | | 上传完成时间。格式:yyyy-MM-dd HH:mm:ss 。仅当st == 4 时出现本属性 |
removeEventListener
function removeEventListener(type: string, listener: Handler<any>): void {
}
移除事件监听器。
参数名 | 数据类型 | 必要 | 说明 |
---|
type | string | Y | 事件类型。为 StrmEvents 系列常量之一 |
listener | Handler<any> | Y | 事件处理器 |
addStrmNotifListener
function addStrmNotifListener(listener: Handler<StrmNotif>): void {
}
添加媒体状态变更通知。通常在事件处理方法中针对 StrmNofit.ACT__strmReady
进行处理。本方法等同于调用 addEventListener(StrmEvents.EVENT_strmNotif, listener)
。
参数名 | 数据类型 | 必要 | 说明 |
---|
listener | Handler<StrmNotif> | Y | 事件处理器 |
removeStrmNotifListener
function removeStrmNotifListener(listener: Handler<StrmNotif>): void {
}
移除媒体状态变更通知。本方法等同于调用 removeEventListener(StrmEvents.EVENT_strmNotif, listener)
。
参数名 | 数据类型 | 必要 | 说明 |
---|
listener | Handler<StrmNotif> | Y | 事件处理器 |
addSessionCreatedListener
function addSessionCreatedListener(listener: Handler<SessionCreatedEvent>): void {
}
添加会话创建事件监听器。本方法等同于调用 addEventListener(StrmEvents.EVENT_sessionCreated, listener)
。
参数名 | 数据类型 | 必要 | 说明 |
---|
listener | Handler<SessionCreatedEvent> | Y | 事件处理器 |
removeSessionCreatedListener
function removeSessionCreatedListener(listener: Handler<SessionCreatedEvent>) {
}
移除会话创建事件监听器。本方法等同于调用 removeEventListener(StrmEvents.EVENT_sessionCreated, listener)
。
参数名 | 数据类型 | 必要 | 说明 |
---|
listener | Handler<SessionCreatedEvent> | Y | 事件处理器 |
addSessionInvalidListener
function addSessionInvalidListener(listener: Handler<SessionInvalidEvent>): void {
}
添加会话失效事件监听器。本方法等同于调用 addEventListener(StrmEvents.EVENT_sessionInvalid, listener)
。
参数名 | 数据类型 | 必要 | 说明 |
---|
listener | Handler<SessionInvalidEvent> | Y | 事件处理器 |
removeSessionInvalidListener
function removeSessionInvalidListener(listener: Handler<SessionInvalidEvent>): void {
}
移除会话失效事件监听器。本方法等同于调用 removeEventListener(StrmEvents.EVENT_sessionInvalid, listener)
。
参数名 | 数据类型 | 必要 | 说明 |
---|
listener | Handler<SessionInvalidEvent> | Y | 事件处理器 |