# 更改音视频流传输状态 (/zh-CN/realtime-media/rtsa/build/media-transmission/stream-state)

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

连接 Connection 并开始音视频流传输后，你可以暂停向指定或所有 Connection 发送流，也可以暂停接收指定或所有 Connection 的流，从而灵活调整音视频流传输状态。本文介绍如何更改音视频流传输状态。

## 发送端实现 [#发送端实现]

调用以下方法暂停或恢复发送本地音视频流：

- `agora_rtc_mute_local_audio`：暂停发送本地音频流。
- `agora_rtc_mute_local_video`：暂停发送本地视频流。

你既可以通过传入 Connection ID 暂停或恢复向指定 Connection 发送数据；也可以将 Connection ID 设置为 0，暂停或恢复向所有 Connection 发送数据。

示例代码如下：

```c
// 暂停向指定 Connection 发送音频流
agora_rtc_mute_local_audio(12345, 1);
// 恢复向指定 Connection 发送音频流
agora_rtc_mute_local_audio(12345, 0);
// 暂停向指定 Connection 发送视频流
agora_rtc_mute_local_video(12345, 1);
// 恢复向指定 Connection 发送视频流
agora_rtc_mute_local_video(12345, 0);
```

## 接收端实现 [#接收端实现]

### 提示远端流发送状态 [#提示远端流发送状态]

发送端调用 `agora_rtc_mute_local_audio` 或 `agora_rtc_mute_local_video` 方法更改本地音视频流传输状态后，同一 Connection ID 下的接收端会相应地收到以下回调：

* `on_user_mute_audio`：提示远端用户是否暂停发送**音频**流。
* `on_user_mute_video`：提示远端用户是否暂停发送**视频**流。

示例代码如下：

```c
static void __on_user_mute_audio(connection_id_t conn_id, uint32_t uid, bool muted)
{
  printf("[conn-%u] audio: uid=%u muted=%d\n", conn_id, uid, muted);
}

static void __on_user_mute_video(connection_id_t conn_id, uint32_t uid, bool muted)
{
  printf("[conn-%u] video: uid=%u muted=%d\n", conn_id, uid, muted);
}
```

### 暂停/恢复接收远端流 [#暂停恢复接收远端流]

调用以下方法暂停或恢复接收指定 Connection ID 中指定用户的音视频流：

* `agora_rtc_mute_remote_audio`：暂停接收远端**音频**流。
* `agora_rtc_mute_remote_video`：暂停接收远端**视频**流。

你既可以通过填写 Connection ID，暂停接收指定 Connection 中指定用户的音视频流；也可以将 Connection ID 设置为 0，暂停接收所有 Connection 中指定用户的音视频流。

示例代码如下：

```c
const uint32_t remote_uid = 789;

// 暂停接收指定 Connection 中远端用户的音频流
agora_rtc_mute_remote_audio (12345, remote_uid, 1);
// 恢复接收指定 Connection 中远端用户的音频流
agora_rtc_mute_remote_audio (12345, remote_uid, 0);
// 暂停接收指定 Connection 中远端用户的视频流
agora_rtc_mute_remote_video (12345, remote_uid, 1);
// 恢复接收指定 Connection 中远端用户的视频流
agora_rtc_mute_remote_video (12345, remote_uid, 0);
```

## API 参考 [#api-参考]

开发过程中，你还可以参考如下文档，了解各 API 的详细信息：

- [`agora_rtc_mute_local_audio`](/zh-CN/api-reference/rtsa/c/agora-rtc-api-8h#a28c1dae086be4014ad732a07db248b16)
- [`agora_rtc_mute_local_video`](/zh-CN/api-reference/rtsa/c/agora-rtc-api-8h#a47f116e271b78c0659fcd68a96d34224)
- [`agora_rtc_mute_remote_audio`](/zh-CN/api-reference/rtsa/c/agora-rtc-api-8h#a8ad8bfa0e0a46a0c5e7fae11449ab575)
- [`agora_rtc_mute_remote_video`](/zh-CN/api-reference/rtsa/c/agora-rtc-api-8h#a894f5a102c66b20c408bb495ac424efa)
- [`on_user_mute_audio`](/zh-CN/api-reference/rtsa/c/structagora-rtc-event-handler-t#a5c823e048831fcefa7fca0a2c01ad864)
- [`on_user_mute_video`](/zh-CN/api-reference/rtsa/c/structagora-rtc-event-handler-t#ae07cf9b3a19154ad8d889a4bd3f51b59)
