# 页面录制事件 (/zh-CN/realtime-media/cloud-recording/build/implement-core-features/webpage)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

当 payload 中的 serviceType 返回 6 时，表示该回调事件的服务类型是页面录制。

本页介绍页面录制相关的回调事件。如果你想查看其他云端录制的相关事件，可以参考[回调事件概览](/zh-CN/realtime-media/cloud-recording/reference/ncs-events)。

页面录制回调包含如下事件：

| `eventType` | 事件描述 |
| --- | --- |
| [`70`](#70)     |  页面录制已启动                                               |
| [`71`](#71)     | 页面录制已停止                                               |
| [`72`](#72)     |  待录制页面使用了不受支持的功能，录制即将停止                 |
| [`73`](#73)     |  待录制页面重新加载          |
| [`100`](#100)     |  页面录制 CDN 推流状态变化       |

<a id="70"></a>
## 70 web_recorder_started [#70-web_recorder_started]

`eventType` 为 `70` 表示页面录制已启动， `details` 中包含以下字段：

- `msgName`：String 类型，消息名称，即 `"web_recorder_started"`。
- `recorderStartTime`： Number 类型，录制开始时间（UTC 时间）。Unix 时间戳，精确到毫秒。

<a id="71"></a>
## 71 web_recorder_stopped [#71-web_recorder_stopped]

`eventType` 为 `71` 表示页面录制已停止， `details` 中包含以下字段：

- `msgName`：String 类型，消息名称，即 `"web_recorder_stopped"`。
- `code`：Number 类型，错误码。如果错误码不为 `0`，则表示页面录制异常停止。
- `message`：String 类型，错误消息，用于提示录制正常或异常停止的原因。
- `details`：String 类型，错误消息具体描述，用于提示录制正常或异常停止的原因的具体描述，你可以根据该信息采取相应措施。
- `fileList`：JSON Array。由每个录制文件的具体信息组成的数组。
  - `filename`：String 类型，录制产生的 M3U8 或 MP4 文件的文件名。
  - `sliceStartTime`：Number 类型，该文件的录制开始时间，Unix 时间戳，单位为毫秒。

`code` 和  `message` 字段说明如下：

| code | message             | 说明                                                         |
| :--- | :------------------ | :----------------------------------------------------------- |
| `0`    | `ok`                 | 正常，用户主动停止录制。                                       |
| `1`    | `max_recording_hour`  | 录制时长达到设置的最大录制时长（`maxRecordingHour`）导致录制停止。 |
| `2`    | `capability_limit`    | 待录制页面使用了不受支持的功能导致录制停止。             |
| `3`    | `start_engine_failed` | 录制服务启动失败导致录制停止。                       |
| `4`    | `page_load_timeout`   |使用[检测页面加载超时](/zh-CN/realtime-media/cloud-recording/build/optimize-and-operate/webpage#检测页面加载超时)功能的情况下，页面加载超时导致录制停止。 |
| `5`    | `access_url_failed`   | 打开待录制页面发生错误导致录制停止。                     |
| `6`    | `recorder_error`      | 录制发生错误不可继续导致录制停止。                       |

回调示例如下：

```json
{
    "msgName": "web_recorder_stopped",
    "code": 1,
    "message": "max_recording_hour",
    "details": "max recording hour is 4",
    "fileList": [
        {
            "filename": "test_p1627613634_www.m3u8",
            "sliceStartTime": 1627613641393
        },
        {
            "filename": "test_p1627613634_www_0.mp4",
            "sliceStartTime": 1627613641393
        }
    ]
}
```

<a id="72"></a>
## 72 web_recorder_capability_limit [#72-web_recorder_capability_limit]

`eventType` 为 `72` 表示待录制页面使用了不受支持的功能，录制即将停止。`details` 中包含以下字段：

- `msgName`：String 类型，消息名称，即 `"web_recorder_capability_limit"`。
- `limitType`：String 类型，限制类型名称，包含如下几种
  - `"resolution"`：待录制页面中包含超过 1920 × 1080 分辨率的视频源。
  - `"WebGL"`：待录制页面使用了 WebGL 功能。
  - `"bandwidth"`：上行带宽超过 10 M，或者下行带宽超过 1 G。

<a id="73"></a>
## 73 web_recorder_reload [#73-web_recorder_reload]

`eventType` 为 `73` 表示页面录制过程中，页面重新加载， `details` 中包含以下字段：

 - `msgName`：String 类型，消息名称，即 `"web_recorder_reload"`。
 - `reason`：String 类型，页面重新加载的原因。包含以下原因：
  - `"audio_silence"`：检测到页面音频丢失。
  - `"page_load_timeout"`：检测到页面加载超时。该回调仅在以下条件下返回该字段：启用[检测页面加载超时](/zh-CN/realtime-media/cloud-recording/build/optimize-and-operate/webpage#检测页面加载超时)功能，且页面加载超时。

<a id="100"></a>
## 100 rtmp_publish_status [#100-rtmp_publish_status]

`eventType` 为 `100` 表示页面录制的 CDN 推流状态变化， `details` 中包含以下字段：

- `msgName`：String 类型，消息名称，即 `"rtmp_publish_status"`。
- `rtmpUrl`：String 类型，CDN 推流地址。
- `status`：String 类型，页面录制当前的推流状态，包括以下状态：
  - `connecting`：正在连接 CDN 服务器。
  - `publishing`：正在推流。
  - `onhold`：推流暂停。
  - `disconnected`：连接 CDN 服务器失败，声网建议你更换 CDN 推流地址。
