> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stmlink.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> 对外开放的服务端接口有两组前缀，都用同一套鉴权：`/server/v1/...`（SRTC 与 SMeeting 的主接口）和 `/stm/srvapi/v1/...`（SMeeting 的用户体系，服务端极简对接会用到）。鉴权是 app_id + nonce + timestamp + signature 四个请求头，用 app_key 做 HMAC-SHA256 签名，只能从业务方自己的后端调用。除这两组前缀外的接口均为内部接口，不要建议客户调用。
> app_key 是服务端密钥，绝不能出现在客户端代码、前端配置或移动 App 里。客户端加入频道用的 token 必须由业务方后端签发后下发（SRTC 走 `/server/v1/channel/grant`，SMeeting 走 `/stm/srvapi/v1/member/grant`）。
> SRTC 与 SMeeting 是上下两层不同的产品，术语不通用：SRTC 是音视频底座，说「频道 channel」「加入 / 退出」；SMeeting 建在 SRTC 之上，说「房间 room」「会议 meeting」「进入 / 退出」。回答时按用户所在的层用对应术语，不要把「房间」「会议」安到 SRTC 的接口上。
> 同一能力在各端 SDK 里的包名、类名、方法名并不相同。写示例代码时请使用文档中该端自己的 API，不要把一个端的写法套到另一个端上。苹果平台每个产品都有两套 SDK（Swift 原生与 Objective-C），两套 API 不能混用。

# MeetingMediaEvent

> 接收当前会议的媒体连接、远端原始帧、媒体统计、音量、活跃说话人与网络质量变化

`MeetingMediaEvent` 承载当前会议的媒体事件，通过 `MeetingEngine.mediaEvent` 注册。可继承 `MeetingMediaSimpleEvent` 按需覆写。

## 使用说明

* 该接口同时包含连接状态、原始远端帧和聚合质量统计；单条远端视频的接收状态应使用 `MeetingRemoteVideoEvent`。

* `onRemoteVideoFrame()` 在 SRTC 媒体线程回调，不得阻塞。

* 媒体统计通常约每 5 秒产生一次；弱网档位变化优先使用 `onNetworkQualityChanged()`。

* 该监听在离会时清除，下一场会议需要重新赋值。

## 接口方法

### onMediaConnected()

```kotlin theme={null}
fun onMediaConnected()
```

方法说明：当前会议的 SRTC 流媒体服务器连接成功。

参数说明：无。

返回值说明：无（`Unit`）。

### onRemoteVideoFrame(uid, trackDesc, y, u, v, width, height, format, angle)

```kotlin theme={null}
fun onRemoteVideoFrame(
    uid: String,
    trackDesc: String,
    y: ByteArray?,
    u: ByteArray?,
    v: ByteArray?,
    width: Int,
    height: Int,
    format: Int,
    angle: Int
)
```

方法说明：收到一帧远端视频原始数据。

参数说明：

| 参数          | 说明             |
| ----------- | -------------- |
| `uid`       | 远端用户 UID。      |
| `trackDesc` | 远端轨道描述。        |
| `y`         | 可空 Y 图像分量。     |
| `u`         | 可空 U 图像分量。     |
| `v`         | 可空 V 图像分量。     |
| `width`     | 画面宽度，单位像素。     |
| `height`    | 画面高度，单位像素。     |
| `format`    | SRTC 定义的像素格式值。 |
| `angle`     | 画面旋转角度。        |

返回值说明：无（`Unit`）。

### onMediaMetric(metric)

```kotlin theme={null}
fun onMediaMetric(metric: MediaMetric.Metric)
```

方法说明：返回当前会议的媒体性能指标快照。

参数说明：

| 参数       | 说明                                                             |
| -------- | -------------------------------------------------------------- |
| `metric` | 发送、接收、网络与服务端质量统计，字段见[媒体质量](/zh/meeting/android/media-quality)。 |

返回值说明：无（`Unit`）。

### onVolumesReport(volumes)

```kotlin theme={null}
fun onVolumesReport(volumes: MutableMap<UserTrackDesc, VolumeInfo>)
```

方法说明：返回当前会议各用户轨道的音量快照。

参数说明：

| 参数        | 说明                             |
| --------- | ------------------------------ |
| `volumes` | 以 `UserTrackDesc` 标识用户轨道的音量映射。 |

返回值说明：无（`Unit`）。

### onActiveSpeakersChanged(speakers)

```kotlin theme={null}
fun onActiveSpeakersChanged(speakers: List<ActiveSpeakerInfo>)
```

方法说明：当前会议的活跃说话人列表发生变化。

参数说明：

| 参数         | 说明                   |
| ---------- | -------------------- |
| `speakers` | 按 SRTC 规则排序的活跃说话人快照。 |

返回值说明：无（`Unit`）。

### onNetworkQualityChanged(change)

```kotlin theme={null}
fun onNetworkQualityChanged(change: NetworkQualityChange)
```

方法说明：当前会议的上行或下行网络质量跨档变化。

参数说明：

| 参数       | 说明                  |
| -------- | ------------------- |
| `change` | 方向、旧等级、新等级和变化趋势等信息。 |

返回值说明：无（`Unit`）。数据类型见 [SRTC 类型](/zh/rtc/android/types)，等级见 [SRTC 枚举](/zh/rtc/android/enums)。
