
# 客户端事件通知（HWLLSClientEvent）
本章节介绍了低时延直播Web SDK的HWLLSClientEvent接口详情。
表1HWLLSClientEvent接口 
| 接口                                                              | 描述              |
|:---|:---|
| [media-statistic]            | 媒体统计事件。         |
| [network-quality]         | 网络质量报告事件。       |
| [video-broken]               | 视频断流事件，等待恢复中。   |
| [audio-broken]               | 音频断流事件，等待恢复中。   |
| [video-recovery]             | 视频断流恢复事件，已恢复播放。 |
| [audio-recovery]           | 音频断流恢复事件，已恢复播放。 |
| [audio-start]             | 音频起播事件。         |
| [video-start]               | 视频起播事件。         |
| [video_stuck]              | 视频是否停顿事件        |
| [fullscreen-status-changed] | 播放视图是否全屏事件      |
| [player-changed]            | 播放降级事件          |
| [Error]                    | 客户端出现错误事件。      |
   
![](https://support.huaweicloud.com/llsdk-live/public_sys-resources/caution_3.0-zh-cn.png)
事件注册监听应在业务结束时取消注册，否则注册监听事件累积会有内存泄漏风险。
 #### media-statistic
**【事件说明】**
媒体统计事件。此事件配合[streamStatistic](https://support.huaweicloud.com/llsdk-live/live_19_0010.html#live_19_0010__section1430441615593)方法使用。
**【回调参数】**
StatisticInfo：StatisticInfo类型，媒体统计信息。
StatisticInfo定义为：{
- video：{ codec: string; // 媒体格式
  bitRate: number; // 码率 kbps
  packetsReceived?: number; // 累计接收包数
  packetsLost?: number; // 累计丢包数
  jitterBufferDelay?: number; // 抖动时延 ms
  frameRate: number; // 接收帧率 fps
  frameDecodedRate?: number; // 解码帧率 fps
  width: number; // 宽度
  height: number; // 高度
  framesReceived?: number; // 累计接收帧数
  framesDecoded?: number; // 累计解码帧数
  framesDropped?: number; // 累计丢帧数
  nackCount?: number; // 累计重传数
  firCount?: number; // 累计**fir**请求数
  pliCount?: number; // 累计**pli**请求数
  frameDecodeAvgTime?: number; // 平均解码时延
  freeze200Count: number; // 200ms卡顿次数
  freeze200Duration: number; // 200ms卡顿时长
  freeze600Count: number; // 600ms卡顿次数
  freeze600Duration: number; // 600ms卡顿时长
  }
  
- audio：{ codec: string; // 媒体格式
  bitRate: number; // 码率 kbps
  packetsReceived?: number; // 累计接收包数
  packetsLost?: number; // 累计丢包数
  jitterBufferDelay?: number; // 抖动时延 ms
  audioLevel?: number; // 音量等级
  freeze200Count: number; // 200ms卡顿次数
  freeze200Duration: number; // 200ms卡顿时长
  }
  
}
 #### network-quality
**【事件说明】**
网络质量报告事件。
**【回调参数】**
NetworkQualityTypes：NetworkQualityTypes类型，网络质量详情。
NetworkQualityTypes枚举值参考如下：
- NETWORK_QUALITY_UNKNOW = 0，网络质量未知。
- NETWORK_QUALITY_GREAT = 1，网络质量极好。
- NETWORK_QUALITY_GOOD = 2，用户主观感觉和极好差不多，但码率可能略低于极好。
- NETWORK_QUALITY_DEFECTS = 3，网络质量一般，用户主观感受有瑕疵但不影响观看。
- NETWORK_QUALITY_WEAK = 4，网络质量差，勉强能观看但不流畅。
- NETWORK_QUALITY_BAD = 5，网络质量很差，严重影响用户观看体验。
- NETWORK_QUALITY_DISCONNECT = 6，网络质量非常差甚至连接断开，无法观看。
 
 #### video-broken
**【事件说明】**
视频断流事件，等待恢复中。
**【回调参数】**
无
 #### audio-broken
**【事件说明】**
音频断流事件，等待恢复中。
**【回调参数】**
无
 #### video-recovery
**【事件说明】**
视频断流（非EOF）恢复事件，已恢复播放。
**【回调参数】**
无
 #### audio-recovery
**【事件说明】**
音频断流（非EOF）恢复事件，已恢复播放。
**【回调参数】**
无
 #### audio-start
**【事件说明】**
音频起播事件。
**【回调参数】**
无
 #### video-start
**【事件说明】**
视频起播事件。
**【回调参数】**
无
 #### video_stuck
**【事件说明】**
视频停顿事件。
**【回调参数】**
布尔值，True标识停顿，False标识非停顿。
 #### fullscreen-status-changed
**【事件说明】**
播放视图是否全屏事件
**【回调参数】**
- isFullScreen：是否全屏展示。
- isPause：是否停止播放。
 
 #### player-changed
**【事件说明】**
播放降级事件。
**【回调参数】**
string类型，降级信息。
- webrtc：标识LLL播放模式。
- hls：标识hls播放模式。
- flv：标识flv播放模式。
 #### Error
**【事件说明】**
客户端错误事件，当出现不可恢复的错误后，Client会上报该事件通知。
**【回调参数】**
errorInfo：必选，HwLLSError类型，错误信息，详见[错误码（HwLLSError）](https://support.huaweicloud.com/llsdk-live/live_19_0012.html)。
errorInfo定义为：{
code：必选，number类型，错误码。
message：必选，string类型，错误描述。
getCode(): number， 必选，返回错误码。
getMsg(): string，必选，返回错误描述。
}
![](https://support.huaweicloud.com/llsdk-live/public_sys-resources/caution_3.0-zh-cn.png)
在网络防火墙限制（UDP端口限制）或者低时延直播多次重试播放失败的场景下，可根据特定错误码（HWLLS_MEDIA_NETWORK_ERROR、HWLLS_PLAY_WEBRTC_RETRY_FAILED），进行播放降级，请参考[SDK使用](https://support.huaweicloud.com/llsdk-live/live_19_0006.html)。
