> For the complete documentation index, see [llms.txt](https://polyv.gitbook.io/document/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://polyv.gitbook.io/document/docs/live/js/new-sdk/live-watch-sdk/articles/modules/channel/module-events.md).

# 模块事件

## 一、频道安装失败

**说明：** 安装 channel 模块失败时会触发该事件

**Event 事件：** `ChannelEvents.ChannelSetupFail`

**回调参数：** `Object` 对象，详细类型说明如下

| 属性名           | 说明       | 类型                       |
| ------------- | -------- | ------------------------ |
| `failReason`  | 频道安装失败原因 | `ChannelSetupFailReason` |
| `failMessage` | 频道安装失败信息 | `string`                 |

## 二、直播状态改变事件

**说明：** 当主播开始/结束直播后，频道的直播状态都会改变，通过该事件监听直播状态改变

**Event 事件：** `ChannelEvents.LiveStatusChange`

**回调参数：** `Object` 对象，详细类型说明如下

| 属性名          | 说明     | 类型           |
| ------------ | ------ | ------------ |
| `liveStatus` | 新的直播状态 | `LiveStatus` |

**示例：**

```js
watchCore.channel.eventEmitter.on(ChannelEvents.LiveStatusChange, (data) => {
  console.log('频道状态改变，新状态：', data.liveStatus);
});
```

## 三、场次号改变事件

**说明：** 主播开次新的一次直播后，都会生成一个新的直播场次号，可以通过频道模块的该事件监听直播场次号改变。

**Event 事件：** `ChannelEvents.SessionIdChange`

**回调参数：** `Object` 对象，详细类型说明如下

| 属性名         | 说明    | 类型       |
| ----------- | ----- | -------- |
| `sessionId` | 新的场次号 | `string` |

**示例：**

```js
watchCore.channel.eventEmitter.on(ChannelEvents.LiveStatusChange, (data) => {
  console.log('频道状态改变，新状态：', data.liveStatus);
});
```

## 四、研讨会主持加入分组讨论事件

**Event 事件：** `ChannelEvents.SeminarHostJoinInGroup`

## 五、研讨会主持离开分组讨论事件

**Event 事件：** `ChannelEvents.SeminarHostLeaveGroup`

## 六、观众累计观看时长

**Event 事件：** `ChannelEvents.ViewerWatchDuration`

**回调参数：** `Object` 对象，详细类型说明如下

| 属性名        | 说明         | 类型       |
| ---------- | ---------- | -------- |
| `duration` | 累计观看时长，单位秒 | `number` |

**示例：**

```js
watchCore.channel.eventEmitter.on(ChannelEvents.ViewerWatchDuration, (data) => {
  console.log('观众累计观看时长', data.duration);
});
```

## 七、转播双师房间切换

**Event 事件：** `ChannelEvents.TransmitDoubleRoomChange`

**回调参数：** `Object` 对象，详细类型说明如下

| 属性名      | 说明                               | 类型                  |
| -------- | -------------------------------- | ------------------- |
| `to`     | 切换到哪个类型的房间: main(主房间)，child(子房间) | `'main' \| 'child'` |
| `roomId` | 房间 Id                            | `string`            |

## 八、关联转播状态变更

**Event 事件：** `ChannelEvents.TransmitChannelSwitch`

**回调参数：** `Object` 对象，详细类型说明如下

| 属性名       | 说明 | 类型        |
| --------- | -- | --------- |
| `enabled` | 开关 | `boolean` |
