跳到主要内容
版本:3.4.0

StrmNotif

通知名称:流媒体状态通知

订阅地址/user/{token}/queue/strm

注:订阅地址中的{token}要用实际的令牌字符串(POST /login接口返回的authToken)代替,如token为Ge4E1xNHSfW8NYa0VJe48A,则流媒体状态通知的订阅地址为: /user/Ge4E1xNHSfW8NYa0VJe48A/queue/strm

结构

当媒体流的状态发生变更时,服务端推送本通知。结构如下:

属性数据类型必要说明
actstringY通知的类型:
  • sent: 下发指令(当终端未及时推流时,服务端可能多次下发指令,因此此通知也可能多次推送)。
  • failed: 终端指令失败(终端不在线或终端应答提出指令已经失败)。
  • id: 终端开始推流。
  • ready: 流已经准备好,此时客户端可以打开流URL(URL由playUrl属性指出)。注意:用异步模式打开实时音视频播放时,如果目标通道已经有其他请求打开,则POST /strm/live/open请求返回的对象的ready将为true。返回后,服务端不会发送actready的流媒体状态通知。
  • closed: 流已经关闭,如果客户端此时仍在播放,则应停止播放。具体关闭原因请检查closeCausecloseReason属性。注意:流关闭并不意味着终端已经关闭码流,如果有其他请求仍在使用码流,则终端码流将仍然保持推流,只是当前的请求ID(reqId)已经关闭、失效。
  • changeCodeStrm: 码流已经或即将发生改变(有客户端请求切换主、子码流)
  • pause: 码流即将或已经暂停(有客户端请求暂停码流)
  • resume: 码流即将或已经恢复(有客户端请求恢复码流)
typstringY流的类型:
  • live: 表示流为直播流
  • replay: 表示流为回放流
simNostringY终端识别号
chanintY音视频逻辑通道号(参见JT/T 1076-2016 表2)
codeStrmint码流类型代码:
  • 0: 主码流
  • 1: 子码流
该属性仅当act == closedact == changeCodeStrm时有效
playUrlstring流媒体播放URL。仅当act == ready时有效
wsUrlstringWebSocket地址,用于对讲时客户端提交音频数据。此地址使用stomp协议。仅当请求的流类型为实时流,且数据类型(dataTyp)为2: 对讲时有效
taUrlstringWebSocket地址,用于对讲时客户端提交音频数据。此地址使用二进制websocket协议。仅当请求的流类型为实时流,且数据类型(dataTyp)为2: 对讲时有效
closeCauseint流关闭的原因代码:
  • 1: 客户端请求关闭流
  • 2: 终端码流断开
  • 3: (此关闭原因代码已经不再使用)
  • 4: 服务端发生未处理的异常
  • 5: 客户端流请求保持超时
  • 6: 终端未能在一定时间内推流
  • 7: 媒体格式错误
  • 8: 终端不在线
该属性仅当act == closed时有效
closeReasonstring流关闭的原因,文字信息。该属性仅当act == closed时有效

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

数据示例

{
"act": "ready",
"reqId": "AbctuB9sSJe8bbBzv-yr9g",
"typ": "live",
"simNo": "13320200317",
"chan": 1,
"playUrl": "http://t2.gratour.info:20022/s/13320200317_1_1?a\u003dS7rAwnY0\u0026b\u003dS91-lPEJg_yulbO6okcRQrguBqEFlUH-YmSXQewOJYSpWg8_7Jx2xZdBYiNZhWZETYFmZ3Kd8j_qguPRf10Yfvl_WB8H5tFUHkh6nILIiZU6wKN3buuvaXAKNA93QmIsk77baWYzkuY70l9TQswdvRRNOBXz9fszrWeQ5aeca6B9PXXUw_WVZiQBiUfrgF7CS2N\u0026reqId\u003dM2MyM2FmMTA3NDQyNGE1YzhlY2VkMzc3ZWU3ZDEwYTQ"
}