# 发版说明 (/zh-CN/realtime-media/rtsa/reference/release-notes)

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

你可以使用 RTSA C SDK 在 Linux 平台上实现媒体流加速的功能。本页提供 RTSA C SDK 的发版说明。

<Accordions type="multiple" openFirst>



## 1.10.1 版 [#1101-版]

<Accordion title="1.10.1 版" id="1101-版" headingLevel={2} value="1101-版">

该版本于 2026 年 9 月 7 日发布。

### 升级必看 [#升级必看]

#### RTM API 更名 [#rtm-api-更名]

该版本对 RTM API 进行了更名。如果你由之前的版本升级到 v1.10.1 且集成过 RTM 服务，请同步更新相关集成代码：

- `agora_rtc_login_rtm` 更名为 `agora_rtm_login`。
- `agora_rtc_logout_rtm` 更名为 `agora_rtm_logout`。
- `agora_rtc_send_rtm_data` 更名为 `agora_rtm_send_data`。

#### RTM 消息接口参数变更 [#rtm-消息接口参数变更]

该版本支持设置 RTM 消息的类型和自定义类型信息：

- `agora_rtm_send_data` 方法新增 `msg_type` 和 `custom_type` 参数，支持发送二进制和文本消息。
- `on_rtm_data` 回调新增 `msg_type` 和 `custom_type` 参数，用于获取收到的消息类型和自定义类型信息。

### 新增特性 [#新增特性]

#### RTM Channel [#rtm-channel]

该版本新增 RTM Channel 功能，支持订阅频道、取消订阅频道以及向频道发布消息。相关 API 包括：

- `agora_rtm_subscribe`
- `agora_rtm_unsubscribe`
- `agora_rtm_publish`
- `on_rtm_subscribe_result`
- `on_rtm_subscribe_data`
- `on_rtm_publish_result`

#### 发送视频时携带 SEI 信息 [#发送视频时携带-sei-信息]

该版本支持发送视频时携带 SEI 信息。`video_frame_info_t` 结构体新增 `sei_data` 成员及配套的 `video_sei_t` 结构体。你可以在调用 `agora_rtc_send_video_data` 时随视频帧发送 SEI 信息。

#### TLS 云代理 [#tls-云代理]

该版本新增 TLS 云代理支持。在调用 `agora_rtc_set_cloud_proxy` 方法时，将 `cloud_proxy_type_e` 设置为 `CLOUD_PROXY_TLS (4)`，即可使用 TLS 云代理。

### 改进 [#改进]

- 优化视频下行传输 Pipeline，降低接收延迟和卡顿率，支持高帧率 Generic 视频流。
- 抽象 mbedTLS 加密适配层，支持接入外部 mbedTLS。
- 引入并开源 AOSL 平台适配层，更好、更快地支持更多非标准 RTOS。
- 优化 RDT 传输速率。

### 问题修复 [#问题修复]

视频：

- 修复接收 JPEG 时未移除尾部 Padding，导致特定硬件解码器无法解码的问题。
- 限制视频重传次数并更新 FEC 计算逻辑，修复弱网环境下重传和 FEC 导致 CPU 占用激增的问题。
- 修复视频质量反馈的时差计算溢出，导致发送端无法更新下行 RTT 的问题。
- 避免超时后仍等待旧重传包，修复弱网环境下视频持续卡住的问题。
- 修复视频上行带宽估计在初始爬升及高丢包重传场景下计算不准确的问题。
- 修复高码率场景下接收端带宽计算溢出，导致带宽估计错误的问题。
- 修复接收 H.265 视频时解析 SEI NALU 失败甚至崩溃的问题。
- 修复视频接收时序列号识别错误，导致只回调关键帧并造成画面卡顿的问题。

音频：

- 修复 Mute 状态下提前收到音视频包时，不会触发对应 Unmute 回调的问题。
- 修复接收 G722 数据时发生丢包，导致解码器输出突发噪声的问题。

其他：

- 修复云代理 Keepalive 机制失效的问题。
- 修复 `log_path` 设置为 `NULL` 时发生崩溃的问题。
- 修复当前 RTM Server 无法连接时，SDK 在部分情况下不会自动切换到下一个可用服务器的问题。

</Accordion>



## 1.9.7 版 [#197-版]

<Accordion title="1.9.7 版" id="197-版" headingLevel={2} value="197-版">

该版本于 2025 年 11 月 27 日发布。

### 升级必看 [#升级必看-1]

#### 删除 audio_process_opt [#删除-audio_process_opt]

该版本对 <glossary>3A</glossary> 模块进行了优化。主要接口变更如下：

- 从 [`rtc_channel_options_t`](/zh-CN/api-reference/rtsa/c/structrtc-channel-options-t) 中移除了 `audio_process_opt`，及其关联结构体 `rtc_audio_process_options_t`。
- 在 `rtc_channel_options_t` 中新增 `enable_audio_downlink_aec` 和 `enable_audio_downlink_aec_pcm_dump` 用于替代上述选项。

新的实现支持用户输入硬件回采信号，从而显著提高下行 <glossary>3A</glossary> 处理效果。如从旧版本升级，请确保同步更新相关集成逻辑。

#### 删除错误码 221 和 222 [#删除错误码-221-和-222]

该版本删除了[错误码](/zh-CN/api-reference/rtsa/c/agora-rtc-api-8h#aec639f854206054cb48acde88e998abf)中的 `ERR_AUDIO_DECODER_NOT_MATCH`(221) 和 `ERR_AUDIO_DECODER_NOT_ENABLE`(222)。

### 改进 [#改进-1]

#### 音频收发 Codec 解耦 [#音频收发-codec-解耦]

该版本将音频的发送和接收编解码格式解耦，不再要求两者保持一致。相关接口更新为在 [`rtc_channel_options_t`](/zh-CN/api-reference/rtsa/c/structrtc-channel-options-t) 中添加了 `enable_audio_decode`，用于控制是否开启下行音频解码。

#### 音频模块改进 [#音频模块改进]

- 重构音频 Jitter Buffer 模块，新增支持处理任意时长的音频包；优化 Jitter 评估算法，提升音频播放效果；优化数据结构，提升整体性能。
- 重构音频 Mixer 模块，新增支持处理任意时长的音频包；优化混音逻辑，以改善混音效果。
- 优化下行接收缓冲队列的取包策略，并改进丢包场景下的停等机制，显著提升音频播放效果。
- 新增适用于支持对话式 AI 场景的下行音频快收模式。
- 优化 G722 解码器，降低因丢包引起的爆音问题。

### 问题修复 [#问题修复-1]

修复了视频 RTP 时间戳偶现错误的问题。

</Accordion>



## 1.9.6 版 [#196-版]

<Accordion title="1.9.6 版" id="196-版" headingLevel={2} value="196-版">

该版本于 2025 年 8 月 8 日发布。

### 升级必看 [#升级必看-2]

#### 代码更名 [#代码更名]

该版本对如下代码进行了更名。如果你由之前的版本升级到 v1.9.6 且集成过相应代码，请重新集成：

- 错误码 `ERR_RTM_EXCEED_TCP_SKB` (1006) 更名为 `ERR_RTM_EXCEED_SND_BUFFER` (1006)。
- 回调 `on_send_rtm_data_result` 更名为 [`on_rtm_send_data_result`](/zh-CN/api-reference/rtsa/c/structagora-rtm-handler-t#a8b8816e97d0ec1563280cc39fe4d28ca)。

#### 区域码清理 [#区域码清理]

该版本对 [`area_code_e`](/zh-CN/api-reference/rtsa/c/agora-rtc-api-8h#a1a483a5b4b02019fa68b46a979ac1d1d) 中不支持的区域进行了清理，并作为预览特性放置在 `area_code_ex_e` 中。声网对预览特性不做可用性保证。

清理后的 `area_code_e` 支持如下区域：

- `AREA_CODE_CN`: 中国大陆
- `AREA_CODE_NA`: 北美
- `AREA_CODE_EU`: 欧洲
- `AREA_CODE_AS`: 亚洲（除中国大陆）
- `AREA_CODE_JP`: 日本
- `AREA_CODE_IN`: 印度
- `AREA_CODE_GLOB`: （默认）全球。

### 新增特性 [#新增特性-1]

#### RTM 服务支持自研 AUT 传输 [#rtm-服务支持自研-aut-传输]

在之前的版本中，RTSA 的实时消息传输 (RTM) 服务采用 TCP 传输层。自该版本起，RTM 服务引入了声网自研的 AUT 传输层技术，显著提高了传输性能。具体改进如下：

- 连接稳定性大幅提升。与之前版本在 30% 丢包率下触发掉线相比，v1.9.6 版本即使在 70% 的丢包环境下仍能保持稳定连接。
- 抗丢包能力显著增强。相较于之前版本在 30% 丢包率时传输能力就会急剧下降，v1.9.6 版本可以在上行 70% 丢包率或者双向 60% 丢包率的极限网络环境下依然保持正常服务。

### 问题修复 [#问题修复-2]

该版本修复了如下问题：

- 与 RTC Web 端互通时，如果 Web 端频繁进行开启/停止发送音视频流的操作 (`mute`/`unmute`)，可能导致 RTSA 端无法接收媒体流。
- 在部分性能受限的设备上，系统定时器可能出现累计误差。
- 当频繁调整 RTSA 运行设备的系统时间时，移动接收端可能出现视频画面卡顿现象。
- 在特定网络环境下（MTU 值较小），使用 RDT 传输大型帧数据时可能发生接收失败的问题。

</Accordion>



## 1.9.5 版 [#195-版]

<Accordion title="1.9.5 版" id="195-版" headingLevel={2} value="195-版">

该版本于 2025 年 3 月 21 日发布。

### 新增特性 [#新增特性-2]

#### String 型 UID 功能 [#string-型-uid-功能]

该版本新增 String 型 UID 功能，支持用户使用 String 型的 User Account 加入频道实现互通。相关 API 包括：

- [`agora_rtc_join_channel_with_user_account`](/zh-CN/api-reference/rtsa/c/agora-rtc-api-8h#a64a24029bfaa5408e987122261385013)：使用 User Account 加入频道
- [`agora_rtc_get_user_info_by_user_account`](/zh-CN/api-reference/rtsa/c/agora-rtc-api-8h#a68efcfa431803942c8fdc733b00c30c1)：通过 User Account 获取远端用户信息
- [`agora_rtc_get_user_info_by_uid`](/zh-CN/api-reference/rtsa/c/agora-rtc-api-8h#ad6b1be785d6c2b4fa8fb0eac90290194)：通过 UID 获取远端用户信息
- [`on_user_info_updated`](/zh-CN/api-reference/rtsa/c/structagora-rtc-event-handler-t#a4235da22aa144746564deaa878dcda40)：远端用户信息变更回调
- [`on_user_joined_with_user_account`](/zh-CN/api-reference/rtsa/c/structagora-rtc-event-handler-t#aa7f9418b6d5502ee641b8231c6f3292f)：远端用户使用 User Account 加入频道回调
- [`on_user_offline_with_user_account`](/zh-CN/api-reference/rtsa/c/structagora-rtc-event-handler-t#ab81aeacbe7daef9eff3f14362267ded7)：使用 User Account 的场景下，远端用户离开频道回调

详细实现步骤和开发注意事项可以参考[使用 String 型 UID](/zh-CN/realtime-media/rtsa/build/media-and-signaling-transmission/string-uid)。

:::warning[注意]
使用 String 型 UID 首次加入频道时会略有延迟。我们更建议使用 Int 型 UID 实现相关功能。
:::

#### 数据流 (Data Stream) 消息 [#数据流-data-stream-消息]

为方便用户在频道内以广播的形式发送消息，该版本新增数据流功能。相关 API 包括：

- [`agora_rtc_create_data_stream`](/zh-CN/api-reference/rtsa/c/agora-rtc-api-8h#aa6b288b479c7048b4cceb85d995771ed)：创建数据流
- [`agora_rtc_send_stream_message`](/zh-CN/api-reference/rtsa/c/agora-rtc-api-8h#aee89fa14447b4529d45275afe5b5a86f)：发送数据流消息
- [`on_stream_message`](/zh-CN/api-reference/rtsa/c/structagora-rtc-event-handler-t#a60c9fde781cd1429ed824efeb1cdd7e5)：收到远端用户发送的数据流消息回调

详细实现步骤和开发注意事项可以参考[发送和接收数据流 (Data Stream)](/zh-CN/realtime-media/rtsa/build/data-communication/data-stream)。

#### 媒体控制信息 [#媒体控制信息]

为方便用户向指定频道或所有频道内的用户发送消息，该版本新增媒体控制信息功能。相关 API 包括：

- [`agora_rtc_send_media_ctrl_msg`](/zh-CN/api-reference/rtsa/c/agora-rtc-api-8h#a83dd3f91afbae5d54548c4d8e546aafc)：发送媒体控制信息
- [`on_media_ctrl_msg`](/zh-CN/api-reference/rtsa/c/structagora-rtc-event-handler-t#a2e1c250bc84081128d1c2f4fed26bf92)：收到远端用户发送的媒体控制信息回调

### 问题修复 [#问题修复-3]

该版本修复了如下问题：

- 调用 `agora_rtc_logout_rtm` 后迅速调用 `agora_rtc_login_rtm` 时，因为状态竞争可能导致后者调用失败。
- 当 `rtc_channel_options_t.audio_codec_opt.pcm_channel_num` 被设置为非法的 0 时，会出现崩溃。
- 发送 Jpeg 文件时 FEC 包错误。
- 调用 `agora_rtc_init` 后快速调用 `agora_rtc_fini` 时偶现崩溃。

</Accordion>



## 1.9.4 版 [#194-版]

<Accordion title="1.9.4 版" id="194-版" headingLevel={2} value="194-版">

该版本于 2025 年 1 月 9 日发布。

### 新增特性 [#新增特性-3]

#### RDT 功能开关 [#rdt-功能开关]

该版本在 `rtc_channel_options_t` 中新增 `enable_rdt` 参数，用来设置是否在加入 RTC 频道时开关 RDT 数据通道功能。原来的 `auto_connect_rdt` 参数转为私有参数控制，默认为 `true`。

该版本还新增对 RDT 数据通道的加密支持。

#### 私参配置支持多频道 [#私参配置支持多频道]

该版本在 `agora_rtc_set_params` 接口中增加 `conn_id` 参数，用来对指定 Connection 进行私有参数配置。

#### 支持 IPV6 [#支持-ipv6]

该版本新增支持 IPV6。有 IPV4 和 IPV6 时， SDK 会根据实际情况自动选择 IPV6 或 IPV4，无需额外设置。

#### RTM 消息状态 [#rtm-消息状态]

该版本增加 `RTM_MSG_STATE_TIMEOUT` 消息状态，用来表示服务端 10 秒内没有响应，SDK 会删除这条未知状态的消息。你可以对用户进行提醒，如果觉得这条消息重要，需要重新发送该消息。

### 改进 [#改进-2]

#### 规整错误码 [#规整错误码]

为提升 SDK 易用性，该版本对错误码进行了规整。API 调用时返回的错误和 `on_error` 回调中报告的错误都收口进了 `agora_err_code_e` 中，并细分为通用、RTN、音频、视频、RDT、RTM 模块，方便开发者快速定位问题。你可以在 [API 参考](/zh-CN/api-reference/rtsa/c/agora-rtc-api-8h#aec639f854206054cb48acde88e998abf)或[错误码文档](/zh-CN/realtime-media/rtsa/reference/error-codes)中了解详情。

在之前的版本中，API 调用时返回的错误没有对外开放，开发者需要调用 `agora_rtc_err2str` 才能获取描述信息。你可以参考最新的 API 代码调整相关逻辑。

#### 细化 RTM 离线状态原因 [#细化-rtm-离线状态原因]

该版本对 `rtm_event_type_e` 中用户 RTM 离线的原因进行了细化。当 RTM 事件类型为 `RTM_EVENT_TYPE_EXIT` 时，可能的原因有：

- `ERR_RTM_SERVER_TIMEOUT`：服务器没有收到我发的心跳包
- `ERR_RTM_LOCAL_INTERRUPT`：本地用户网络中断
- `ERR_RTM_LOCAL_TIMEOUT`：本地用户没收到服务端响应的心跳包
- `ERR_RTM_LOCAL_NETDOWN`：检测到网卡出现故障

该改动更好地区分了 RTM 离线事件 `rtm_event_type_e` 的类别，方便用户对事件进行响应：

- `RTM_EVENT_TYPE_LOGIN`(0)：如果对应的事件码是 `ERR_RTM_OK`(0)，表示成功登录 RTM 服务。否则登录失败，也不可恢复。
- `RTM_EVENT_TYPE_KICKOFF`(1)：由于 UID 重复被踢出频道，也不可恢复。
- `RTM_EVENT_TYPE_EXIT`(2)：中断退出，可以自动恢复。

#### 其它改进 [#其它改进]

该版本还进行了如下改进：

- 优化了物联网卡的连接逻辑，减少连接失败概率，提升连接速度。
- 提升弱网下更新 Token 的可靠性，防止丢包过高导致操作失败。
- 优化了加入频道的速度。
- 优化了弱网下视频的流畅度。
- 降低了 CPU 的占有率。

### 问题修复 [#问题修复-4]

该版本修复了如下问题：

- 由于视频包重传次数限制逻辑错误，导致重传包发送过少。
- 视频发送 Pacer 逻辑错误，导致 Pacer 缓冲区满时只能发送 I 帧。
- 音频混音模块和物联网卡连接模块的两处内存泄露。
- 在加入频道前进行 mute/unmute 远端用户的操作可能不生效。
- 弱网下进行 mute/unmute 远端用户的操作偶现失败。
- 修复多个 Connection 时，mute/unmute 针对指定连接进行操作时，会误将所有连接都设置的问题。
- 偶现加入频道后无法触发 `on_user_joined` 回调。
- 当 License 设置错误被服务器通知被 ban 时，SDK 触发错误回调后崩溃。
- 一端 `auto_connect_rdt` 为 `true`，另一端为 `false` 时，20 秒内非预期退出频道又加入，RDT 无法重建。
- 在纯 IPV6 网络下，发生网络切换时可能导致获取网络信息错误，从而无法加入频道。
- 丢包重传较多时网络 jitter 数据统计错误。
- 使用 RTM 服务时，`remote_id` 填写为 `NULL` 时，导致 `RTM` 连接工作异常，且 SDK 不会报错。现在会报错 `ERR_INVALID_PARAM`。
- `rtm_event_handler` 异步调用传递时没有深拷贝，可能导致的崩溃问题。
- 修复与小程序 RTC 和 RTM 的互通问题。

</Accordion>



## 1.9.2 版 [#192-版]

<Accordion title="1.9.2 版" id="192-版" headingLevel={2} value="192-版">

该版本于 2024 年 1 月 9 日发布。

### 新增特性 [#新增特性-4]

#### 基于 RDT 通道的消息传输 [#基于-rdt-通道的消息传输]

为满足文件传输、文件下载等业务场景对可靠性的要求，该版本支持通过可靠数据传输（Reliable Data Transmission，以下简称 RDT）通道传输控制消息 (`RDT_STREAM_CMD`) 和数据消息 (`RDT_STREAM_DATA`)。配套新增的方法及回调如下：

- `agora_rtc_send_rdt_msg` 方法：通过 RDT 通道发送消息
- `agora_rtc_get_rdt_status_info` 方法：获取 RDT 通道的信息。
- `on_rdt_state` 回调：RDT 通道的连接状态已改变。
- `on_rdt_msg` 回调：在 RDT 通道中收到消息。

具体使用方法见[通过 RDT 通道发送消息](/zh-CN/realtime-media/rtsa/build/data-communication/send-message-through-rdt-channel)。

#### 音频时长设置 [#音频时长设置]

该版本在 `audio_codec_option_t` 结构体中新增 `pcm_duration` 成员，用于设置音频时长，取值范围为 20 到 100 毫秒。该设置对任意格式的音频数据都有效。

### 改进 [#改进-3]

#### RTM 模块 [#rtm-模块]

该版本对 RTM 模块进行了如下改进：

- 优化了被踢出 RTM 系统后的行为：
  - 如果被踢出的原因是网络超时，则 SDK 会报告错误码 `ERR_RTM_NOTICE_INTERRUPT` 并尝试自动重连。
  - 如果被踢出的原因是有人使用相同用户 ID 登录 RTM 系统，则 SDK 会报告错误码 `ERR_RTM_NOTICE_KICKED_OUT`，你需要更换用户 ID 登录并保证用户 ID 的唯一性。
- 提升了 `agora_rtc_send_rtm_data` 方法的易用性：
  - 将 `msg_id` 参数由输出参数改为输入参数，你可以为每条消息设置唯一的消息 ID，且相同消息的 ID 不变，方便你在需要重传消息的时候快速定位到指定的消息。
  - 将 `msg_len` 参数的长度最大值由 32 KB 修改为 31 KB。之前版本的限制是协议头加消息的总长度至多为 32 KB，因为协议头长度不固定且用户无法获取，所以该版本将限制修改为消息长度至多为 31 KB，无需关心协议头长度。
  - 新增调用失败的错误码，你可以根据提示快速定位问题并解决：
    | 错误码 | 描述 |
    | --- | --- |
    | `RTM_ERR_NOT_LOGINED` | `-1001`：未登录 RTM 系统 |
    | `RTM_ERR_SEND_TO_SELF` | `-1002`：在 `rtm_uid` 参数中误填了自己的用户 ID。 |
    | `RTM_ERR_EXCEED_MSG_SIZE` | `-1003`：RTM 消息长度超出限制。消息长度至多为 31 KB。 |
    | `RTM_ERR_EXCEED_MSG_CNT` | `-1004`：发送频率超出限制。每秒至多发送 60 条消息。 |
    | `RTM_ERR_EXCEED_TCP_SKB` | `-1005`：消息通道已满。等待一秒后重新发送。 |

- 优化了保活机制，减少了掉线概率。
- 缩短了 RTM 的登录时间。

#### 下行回声消除 [#下行回声消除]

为提升回声消除效果并降低功耗，该版本在 `rtc_audio_process_options_t` 结构体中新增 `enable_downlink_aec` 成员，你可以通过该成员设置是否开启下行回声消除。声网推荐你使用下行回声消除 (`enable_downlink_aec`) 替代上行回声消除 (`enable_aec`)。

#### 音频编码格式 [#音频编码格式]

该版本支持采样率为 8000 Hz 的 AAC-LC 音频编码格式，你可以在发送音频帧时设置 `audio_data_type_e` 为 `AUDIO_DATA_TYPE_AACLC_8K`。

#### 混音数据回调 [#混音数据回调]

该版本解除了 `on_mixed_audio` 回调对 `on_audio_data` 回调的依赖，你无需监听 `on_audio_data` 回调，也可以正常接收 `on_mixed_audio` 回调。

### 问题修复 [#问题修复-5]

该版本修复了如下问题：

- H.265 视频数据的 FEC 功能解析异常。
- 特定场景下的视频卡顿。
- 调用 `agora_rtc_renew_token` 方法更新 Token 后，SDK 在加入频道时未使用新的 Token。

</Accordion>



## 1.9.1 版 [#191-版]

<Accordion title="1.9.1 版" id="191-版" headingLevel={2} value="191-版">

该版本于 2023 年 7 月 11 日发布。

### 升级必看 [#升级必看-3]

#### 视频帧率 [#视频帧率]

为满足不同用户对视频帧率的需求，该版本将 `video_frame_info_t` 结构体中的 `frame_rate` 成员由枚举型修改为整型，你可以设置视频帧率为 [1,60] 间的任意整数。同时，该版本也删除了 `video_frame_rate_e` 枚举类中的所有枚举值。

### 新增特性 [#新增特性-5]

#### 媒体流加密 [#媒体流加密]

在安全要求高的场景中，为保证数据的保密性、完整性和真实性，提高数据加密的计算效率，该版本在 `rtc_channel_options_t` 结构体中新增 `crypto_opt` 成员并删除 `enable_aut_encryption` 成员。你可以在加入频道时通过 `crypto_opt` 设置是否开启媒体流加密、加密模式、密钥和盐。

:::warning[注意]
开启媒体流加密后，同一频道内的所有用户都必须使用相同的加密模式和密钥，包括服务端用户（例如声网录制服务）。
:::

#### 区域访问限定 [#区域访问限定]

该版本支持限定用户的访问区域为香港澳门、美国或俄罗斯，你可以在 `area_code_e` 枚举类中设置如下区域码：

- `AREA_CODE_HKMC`: 香港和澳门
- `AREA_CODE_US`: 美国
- `AREA_CODE_RU`: 俄罗斯

#### 音频编码格式 [#音频编码格式-1]

为方便在低性能设备中存储、传输、处理 AAC-LC 音频数据，该版本在 `audio_data_type_e` 枚举类中新增 `AUDIO_DATA_TYPE_AACLC_16K` 枚举，支持按照 16000 Hz 采样率对 AAC-LC 音频数据进行编码。

### 改进 [#改进-4]

#### SDK 连接状态与用户加入/离开频道回调 [#sdk-连接状态与用户加入离开频道回调]

为更好地分辨 SDK 断连、重连的状态，更准确地报告远端用户加入和离开频道的状态，该版本新增 `on_reconnecting` 回调并对 `on_connection_lost`、 `on_user_joined` 和 `on_user_offline` 回调的行为进行如下改进：

| 回调 | v1.9.1 之前的触发场景 | v1.9.1 的触发场景 |
| --- | --- | --- |
| `on_reconnecting` | / | [release-notes-c-html-0-1-2 details](#table-slot-release-notes-c-html-0-1-2) |
| `on_connection_lost` | [release-notes-c-html-0-2-1 details](#table-slot-release-notes-c-html-0-2-1) | SDK 与服务器断开连接超过 10 秒。 |
| `on_user_joined` | [release-notes-c-html-0-3-1 details](#table-slot-release-notes-c-html-0-3-1) | SDK 与服务器已连接且本地用户已加入频道的情况下，远端用户加入频道。 |
| `on_user_offline` | SDK 与服务器已连接且本地用户已加入频道的情况下，远端用户离开频道。 | [release-notes-c-html-0-4-2 details](#table-slot-release-notes-c-html-0-4-2) |

<a id="table-slot-release-notes-c-html-0-1-2"></a>

**release-notes-c-html-0-1-2 details**

- SDK 与服务器断开连接超过 4 秒。
- 网络断开。
- 用户切换网络类型，例如 4G 网络切换成 Wi-Fi 网络。

<a id="table-slot-release-notes-c-html-0-2-1"></a>

**release-notes-c-html-0-2-1 details**

- SDK 与服务器断开连接超过 10 秒。
- 网络断开。
- 用户切换网络类型，例如 4G 网络切换成 Wi-Fi 网络。

<a id="table-slot-release-notes-c-html-0-3-1"></a>

**release-notes-c-html-0-3-1 details**

- SDK 与服务器已连接且本地用户已加入频道的情况下，远端用户加入频道。
- 本地用户和远端用户都在频道中时，如果 SDK 与服务器断开连接后 20 秒内重新连接、本地用户重新出现在频道中，则本地用户会再次收到同一批远端用户的 `on_user_joined` 回调。

<a id="table-slot-release-notes-c-html-0-4-2"></a>

**release-notes-c-html-0-4-2 details**

- SDK 与服务器已连接且本地用户已加入频道的情况下，远端用户离开频道。
- SDK 超过 20 秒未收到远端用户的任何数据包。

#### 实时消息 [#实时消息]

该版本在实时消息功能中进行了如下改进：

- 将 `agora_rtc_send_rtm_data` 方法的 `msg_id` 参数由输入参数变为输出参数，SDK 会自动为每条消息分配消息 ID，无需额外设置。
- 在 `on_send_rtm_data_result` 回调中新增 `rtm_uid` 参数，表示向哪个用户发送了实时消息。
- 提高了弱网条件下的登录成功率。

### 问题修复 [#问题修复-6]

该版本修复了如下问题：

- 用户无法接收 H.265 格式的视频帧。
- 发送 AAC 音频数据时，音画不同步。
- 弱网条件下，本地用户加入频道时，偶现 SDK 先触发 `on_user_joined` 回调，再触发 `on_join_channel_successful` 回调。
- 调用 `agora_rtc_mute_remote_audio` 方法静音远端用户后，SDK 依旧触发了该远端用户的 `on_audio_data` 回调。
- 偶现的崩溃。

</Accordion>



## 1.9.0 版 [#190-版]

<Accordion title="1.9.0 版" id="190-版" headingLevel={2} value="190-版">

该版本于 2023 年 1 月 4 日发布。

### 新增特性 [#新增特性-6]

#### License 自动验证 [#license-自动验证]

该版本新增 License 自动验证功能。加入频道时，声网服务器会自动验证你在 `agora_rtc_init` 中传入的 License。如果 License 验证失败，则 SDK 会触发 `on_license_validation_failure` 回调，你可以根据收到的错误码处理问题。

同时，该版本废弃 `agora_rtc_license_gen_credential` 和 `agora_rtc_license_verify` 方法，`on_err` 回调不再报告 License 验证失败的错误码。如果你之前通过 `agora_rtc_license_gen_credential` 和 `agora_rtc_license_verify` 方法进行 License 验证，并通过 `on_err` 回调处理 License 验证失败的业务逻辑，声网推荐你改用 `on_license_validation_failure` 回调。

#### 视频旋转 [#视频旋转]

该版本在 `video_frame_info_t` 中新增 `rotation` 参数，你可以通过该参数设置已编码视频帧的旋转角度。

#### 物联网卡域名限制 [#物联网卡域名限制]

该版本在 `rtc_service_option_t` 中新增 `domain_limit` 参数。在使用定向物联网卡的场景下，你可以通过该参数开启域名限制，使 SDK 仅访问指定域名的网络，从而保证使用定向物联网卡的设备与其他设备互通。

:::info[信息]
如需使用该功能，联系 sales@shengwang.cn。
:::

#### 音频处理选项 [#音频处理选项]

该版本在 `rtc_channel_options_t` 中新增 `audio_process_opt` 参数，你可以设置是否开启回声消除、降噪等音频处理选项。

:::info[信息]
如需使用该功能，联系 sales@shengwang.cn。
:::

#### 日志打印 [#日志打印]

该版本在 `log_config_t` 中新增 `log_tag` 和 `log_printf` 参数，你分别设置日志标志、实现日志打印函数，SDK 会通过该设置打印日志。

### 改进 [#改进-5]

该版本改善了弱网环境下的音视频体验。

### 问题修复 [#问题修复-7]

该版本修复了一些问题。

</Accordion>



## 1.8.0 版 [#180-版]

<Accordion title="1.8.0 版" id="180-版" headingLevel={2} value="180-版">

该版本于 2022 年 8 月 1 日发布。

### 升级必看 [#升级必看-4]

1.8.0 版相比 1.7.3 版，大部分 API 都发生了变更或重新设计。如果你将 SDK 从 1.7.3 版升级到该版本，你需要重新集成 SDK。集成方式详见[实现媒体流和信令传输](/zh-CN/realtime-media/rtsa/build/media-and-signaling-transmission/implement-transmission)。

自该版本起，SDK 不再支持 String 型用户 ID，相关接口也从 SDK 中删除。

### 新增特性 [#新增特性-7]

#### Connection ID 机制 [#connection-id-机制]

自该版本起，SDK 使用 Connection ID 机制连接 RTC 频道。一个 Connection 有唯一的 ID，每个 Connection 可以关联多个 RTC 频道。你可以通过操作 Connection ID 来影响相关的 RTC 频道。

SDK 将所有 `channel_name` 参数更新为 `connection_id` 参数（`agora_rtc_join_channel` 除外），并新增与 `connection_id` 相关的接口：

 - `agora_rtc_create_connection`：创建 Connection
 - `agora_rtc_destroy_connection`：销毁 Connection
 - `agora_rtc_get_connection_info`：获取 Connection 信息

Connection 通过 `agora_rtc_join_channel` 与 RTC 频道和用户 ID 进行绑定。在你调用 `agora_rtc_leave_channel` 之后，绑定结束。

你可以通过  Connection ID 机制实现多频道推流和单频道推多路流，详见[多频道发流和单频道多路发流](/zh-CN/realtime-media/rtsa/build/media-transmission/multi-channel)。

### 问题修复 [#问题修复-8]

修复了一些 SDK 的问题。

</Accordion>



## 1.7.3 版 [#173-版]

<Accordion title="1.7.3 版" id="173-版" headingLevel={2} value="173-版">

该版本于 2022 年 5 月 19 日发布。

### 新增特性 [#新增特性-8]

SDK 新增对以下加密模式的支持：

- `aes-128-ecb`
- `aes-128-xts`
- `aes-256-xts`

salt 类型新增对 Base64 编码的支持。

### 问题修复 [#问题修复-9]

修复了一些 SDK 的问题。

### 改进 [#改进-6]

- 改进了 SDK 的性能，修复了一些问题。
- 在 SDK 日志中新增 IP 脱敏功能。

</Accordion>



## 1.7.0 版 [#170-版]

<Accordion title="1.7.0 版" id="170-版" headingLevel={2} value="170-版">

该版本于 2022 年 3 月 16 日发布。

### 升级必看 [#升级必看-5]

1.7.0 版相比 1.6.0 版，发生了如下兼容性变更。如果你将 SDK 从 1.6.0 版升级到该版本，请根据下列变更信息更新你的应用。

#### 方法和回调的兼容性变更 [#方法和回调的兼容性变更]

- `agora_rtc_init` 方法删除 `sdk_log_dir` 参数。日志文件的设置转移到 `option` 参数 `rtc_service_option_t` 结构体的 `log_cfg` 成员。
- `on_audio_data` 和 `on_mixed_audio_data` 回调的 `audio_codec_e codec` 参数更改为 `audio_data_type_e data_type`。
- `on_video_data` 回调的 `video_codec_e codec` 参数更改为 `video_data_type_e data_type`。

#### 结构体和枚举的兼容性变更 [#结构体和枚举的兼容性变更]

- `audio_codec_option_t` 的 `bool use_audio_codec` 成员更新为 `audio_codec_type_e audio_codec_type`。
- `rtc_log_level_e` 结构体中的 `ERR_OK` 枚举成员改名为 `ERR_OKAY`。
- `agora_err_code_e` 结构体中的 `ERR_UNABLE_TO_DECODE_NON_OPUS_AUDIO_FRAME (201)` 枚举成员扩展为 `ERR_AUDIO_DECODER_NOT_MATCH_AUDIO_FRAME (201)` 和 `ERR_NO_AUDIO_DECODER_TO_HANDLE_AUDIO_FRAME (202)`。
- `video_frame_info_t` 结构体的 `video_codec_e codec` 成员更改为 `video_data_type_e data_type`。
- `audio_frame_info_t` 结构体的 `audio_codec_e codec` 成员更改为 `audio_data_type_e data_type`。
- `audio_codec_e` 结构体更名为 `audio_codec_type_e`。

### 新增特性 [#新增特性-9]

#### 云代理 [#云代理]

新增 `agora_rtc_set_cloud_proxy` 方法，用于设置声网云代理。

#### 音视频通道加密 [#音视频通道加密]

`rtc_channel_options_t` 结构体新增 `bool` `enable_encrypt` 成员，用于开启或关闭音视频通道加密功能。

#### 传输 G711 编码的音频数据 [#传输-g711-编码的音频数据]

自该版本起，`audio_frame_info_t` 结构体的 `audio_data_type_e` 枚举增加 `AUDIO_DATA_TYPE_PCMU` 和 `AUDIO_DATA_TYPE_PCMA`，用于支持 SDK 传输 G711 格式的音频数据。

#### 直接传输 PCM 时可选择的编码类型新增 G722 和 PCMU [#直接传输-pcm-时可选择的编码类型新增-g722-和-pcmu]

自该版本起，`audio_codec_option_t` 结构体的 `audio_codec_e codec` 成员更改为 `audio_codec_type_e audio_codec_type`。`audio_data_type_e` 枚举包含 `AUDIO_CODEC_TYPE_OPUS`、`AUDIO_CODEC_TYPE_G722` 和 `AUDIO_CODEC_TYPE_PCMU`，用于支持 SDK 自动将 PCM 音频数据转换为 Opus、G722 和 PCMU 编码的音频数据并在接收端解码为 PCM 音频数据。

### 改进 [#改进-7]

- 改进了 SDK 的性能，修复了一些问题。
- 在 SDK 日志中新增 IP 脱敏功能。

### API 变更 [#api-变更]

#### 新增 [#新增]

- `agora_rtc_set_cloud_proxy` 方法
- `cloud_proxy_type_e` 枚举
- `rtc_service_option_t` 结构体新增 `log_cfg` 成员，类型为 `log_config_t` 结构体
- `rtc_log_level_e` 枚举新增 `RTC_LOG_DEFAULT` 成员
- `audio_data_type_e` 结构体
- `rtc_channel_options_t` 结构体新增 `bool enable_encrypt` 成员。

#### 变更 [#变更]

- `agora_rtc_send_media_ctrl_msg` 中 `payload` 的最大长度更新为 1024 字节。
- `rtc_service_option_t` 新增 `log_cfg` 字段，用于设置 SDK 日志。
- `rtc_log_level_e` 结构体中的 `ERR_OK` 枚举改名为 `ERR_OKAY`。
- `video_frame_info_t` 结构体的 `video_codec_e codec` 成员更改为 `video_data_type_e data_type`。
- `audio_frame_info_t` 结构体的 `audio_codec_e codec` 更新为 `audio_data_type_e data_type`。
- `audio_codec_e` 结构体更名为 `audio_codec_type_e`。
- `audio_codec_option_t` 的 `bool use_audio_codec` 成员更新为 `audio_codec_type_e audio_codec_type`。
- `on_audio_data`、`on_mixed_audio_data` 回调的 `audio_codec_e codec` 参数更改为 `audio_data_type_e data_type`。
- `on_video_data` 回调的 `video_codec_e codec` 参数更改为 `video_data_type_e data_type`。

#### 删除 [#删除]

- `video_codec_e` 枚举
- `agora_rtc_init` 方法删除 `sdk_log_dir` 参数

</Accordion>



## 1.6.0 版 [#160-版]

<Accordion title="1.6.0 版" id="160-版" headingLevel={2} value="160-版">

该版本于 2021 年 9 月 24 日发布。

### 升级必看 [#升级必看-6]

该版本有以下兼容性改动。

#### 新增参数 [#新增参数]

`agora_rtc_join_channel` 新增 `uid` 参数。

#### 删除参数 [#删除参数]

`agora_rtc_init` 删除 `uid` 参数。

#### 参数新增成员 [#参数新增成员]

`agora_rtc_init` 的 `option` 参数新增以下成员：

- `product_id`
- `product_id_length`
- `use_string_uid`

#### 删除接口 [#删除接口]

删除了 `agora_rtc_init_with_name` 接口。

### 新增特性 [#新增特性-10]

#### 在本地获取混音 [#在本地获取混音]

增加 `on_mixed_audio_data` 回调。你可以通过此回调在本地获取混音数据。

#### 支持与 Web SDK 的 H.264 视频流双向互通 [#支持与-web-sdk-的-h264-视频流双向互通]

该版本支持从 Web SDK 接收 H.264 视频流。自该版本起，RTSA SDK 支持与 Web SDK 的双向互通。

### 改进 [#改进-8]

License 激活工具使用 HTTPS 协议，增强了安全性。

### API 变更 [#api-变更-1]

#### 新增 [#新增-1]

- `on_mixed_audio_data`

- `agora_rtc_join_channel` 新增 `uid` 参数

- `rtc_service_option_t` 结构体新增以下参数：

  - `product_id`
  - `product_id_length`
  - `use_string_uid`

#### 删除 [#删除-1]

- `agora_rtc_init_with_name`
- `agora_rtc_init` 删除 `uid` 参数。

</Accordion>



## 1.5.0 版 [#150-版]

<Accordion title="1.5.0 版" id="150-版" headingLevel={2} value="150-版">

该版本于 2021 年 5 月 31 日发布。

### 新增特性 [#新增特性-11]

该版本支持在调用 `agora_rtc_init` 初始化 SDK 时指定服务器的访问区域。该功能为高级设置，适用于有访问安全限制的场景。目前支持的区域有中国大陆、北美、欧洲、日本、印度、亚洲（中国大陆除外）和全球（默认）。详见[限定访问区域](/zh-CN/realtime-media/rtsa/build/network-and-region-access/region-limit)。

### 问题修复 [#问题修复-10]

通过优化登录时间，解决了 RTM 登录过慢的问题。

### API 变更 [#api-变更-2]

#### 新增 [#新增-2]

- `agora_rtc_init` 新增 `option` 参数
- `area_code_e` 枚举
- `rtc_service_option_t` 结构体
- `ERR_DYNAMIC_TOKEN_BUT_USE_STATIC_KEY` 错误码

</Accordion>



## 1.4.2 版 [#142-版]

<Accordion title="1.4.2 版" id="142-版" headingLevel={2} value="142-版">

该版本于 2021 年 4 月 11 日发布。

### 改进 [#改进-9]

- 该版本对 API 返回的错误码进行了整理。以确保开发者能够得到清晰且准确的报错信息。详见[错误码](/zh-CN/api-reference/rtsa/c/agora-rtc-api-8h#aec639f854206054cb48acde88e998abf)。
- 该版本优化了 debug log，减少了 log 文件写入操作的系统资源占用。
- 自该版本起，你可以略过申请 License 和激活步骤直接免费试用 RTSA SDK。试用期时效为 90 天且存在 10 路并发限制。

### 问题修复 [#问题修复-11]

该版本修复了以下问题：

- 特定情况下音频卡顿、杂音。
- log 输出功能存在少量内存泄露。
- 断网重连后 SDK 音频编码功能异常。
- 对端推送非 Opus 格式编码的音频可能造成 SDK 崩溃。

</Accordion>



## 1.4.1 版 [#141-版]

<Accordion title="1.4.1 版" id="141-版" headingLevel={2} value="141-版">

该版本于 2021 年 3 月 11 日发布。

### 升级必看 [#升级必看-7]

- `agora_rtc_join_channel` 方法新增了 `options` 参数，用于设置订阅媒体类型和 SDK 内置的音频编解码器。

  :::info[信息]
  - 调用 `agora_rtc_join_channel` 方法加入频道后，SDK 默认不订阅任何音频流和视频流。如果你需要进行订阅操作，必须通过 `options` 参数设置 `rtc_channel_options_t` 结构体的 `auto_subscribe_audio` 成员和 `auto_subscribe_video` 成员。
      - SDK 内置的音频编解码器默认关闭，你必须在开启 SDK 内置编解码器之后才能直接传输 PCM 数据。
  :::

- 为提高 API 易用性，`audio_codec_e` 枚举类型中的 `AUDIO_CODEC_PCM_TO_OPUS` 和 `AUDIO_CODEC_PCM_FROM_OPUS` 合并为 `AUDIO_CODEC_PCM`。在使用 `agora_rtc_send_audio_data` 发送 PCM 数据时，`audio_frame_info_t` 参数中的 `codec` 需要设为 `AUDIO_CODEC_PCM`。使用 `on_audio_data` 接收 PCM 数据时，返回的 `codec` 参数为 `AUDIO_CODEC_PCM`。

### 新增特性 [#新增特性-12]

#### 自定义订阅媒体类型 [#自定义订阅媒体类型]

你可以通过 `rtc_channel_options_t` 结构体的 `auto_subscribe_audio` 成员和 `auto_subscribe_video` 成员选择订阅媒体类型。选项包括：

- 是否订阅音频流。
- 是否订阅视频流。

#### 设置 SDK 内置的音频编解码器参数 [#设置-sdk-内置的音频编解码器参数]

你可以通过 `rtc_channel_options_t` 结构体的 `audio_codec_opt` 成员设置 SDK 内置的音频编解码器参数，包括：

- 是否开启 SDK 内置音频编解码器 (默认关闭)。
- 编解码器的 PCM 采样频率。
- 编解码器的 PCM 通道数。

#### 发送 JPEG 编码的视频帧 [#发送-jpeg-编码的视频帧]

 你可以通过设置 `agora_rtc_send_video_data` 的 `info_ptr` 参数发送 JPEG 编码的视频帧。

### 改进 [#改进-10]

- 更正了 `rtm_event_type_e` 枚举类型中 `RTM_EVENT_TPYE_EXIT` 枚举值的拼写错误。`RTM_EVENT_TPYE_EXIT` 更正为 `RTM_EVENT_TYPE_EXIT` 。
- 为了改善枚举值命名的可读性，将 `ERR_RTM_INVALID_CHANNEL_NAME` 重新命名为 `ERR_RTM_INVALID_RTM_UID`。

### API 变更 [#api-变更-3]

#### 新增 [#新增-3]

- `agora_rtc_join_channel` 方法新增了 `options` 参数
- `video_codec_e` 枚举类型新增 `VIDEO_CODEC_GENERIC_JPEG`
- `rtc_channel_options_t` 结构体
- `audio_codec_option_t` 枚举类型

#### 变更 [#变更-1]

- `audio_codec_e` 枚举类型中的 `AUDIO_CODEC_PCM_TO_OPUS` 和 `AUDIO_CODEC_PCM_FROM_OPUS` 合并为 `AUDIO_CODEC_PCM`
- `rtm_event_type_e` 枚举类型中的 `RTM_EVENT_TPYE_EXIT` 更正为 `RTM_EVENT_TYPE_EXIT`
- `ERR_RTM_INVALID_CHANNEL_NAME` 重新命名为 `ERR_RTM_INVALID_RTM_UID`

</Accordion>



## 1.4.0 版 [#140-版]

<Accordion title="1.4.0 版" id="140-版" headingLevel={2} value="140-版">

该版本于 2021 年 2 月 24 日发布。

### 升级必看 [#升级必看-8]

#### License 激活机制更新 [#license-激活机制更新]

自该版本起，License 激活机制基于安全性考虑进行了更新。详见[跑通示例项目](/zh-CN/realtime-media/rtsa/get-started/run-example)。

#### 数据传输接口替换 [#数据传输接口替换]

自该版本起，基于可靠数据通道 (RDT) 的数据传输接口替换为基于云信令 (原 RTM) 的信令接口。RTSA 1.4.0 移除了以下 RDT 数据传输接口：

- `agora_rtc_send_cmd`
- `agora_rtc_send_through_rdt`
- `on_cmd`
- `on_data_from_rdt`
- `on_rdt_availability_changed`

你可以使用云信令 (原 RTM) 的信令接口：

- `agora_rtc_login_rtm`
- `agora_rtc_logout_rtm`
- `agora_rtc_send_rtm_data`
- `on_rtm_data`
- `on_rtm_event`
- `on_send_rtm_data_result`

#### 参数类型变更 [#参数类型变更]

`agora_rtc_set_log_level` 方法的 `level` 参数从 int 型变为枚举型。枚举值通过 `rtc_log_level_e` 枚举类型定义。

### 新增特性 [#新增特性-13]

#### 基于云信令 (原 RTM) 的信令接口 [#基于云信令-原-rtm-的信令接口]

增加了基于云信令 (原 RTM) 的信令接口。你可以通过此接口发送和接收消息，并获取用户状态变化通知。

#### 传输 PCM 数据 [#传输-pcm-数据]

你可以使用 SDK 直接传输 PCM 数据，而无需自己进行音频编解码。在使用 `agora_rtc_send_audio_data` 发送 PCM 数据时，`audio_frame_info_t` 参数中的 `codec` 需要设为 `AUDIO_CODEC_PCM_TO_OPUS`。使用 `on_audio_data` 接收 PCM 数据时，返回的 `codec` 参数为 `AUDIO_CODEC_PCM_FROM_OPUS`。

#### 自定义发送大流或小流 [#自定义发送大流或小流]

你可以通过 `agora_rtc_send_video_data` 方法的 `stream_id` 参数选择发送大流或小流。`stream_id` 设为 `0` 时，SDK 会发送大流；设为 `1` 时，SDK 会发送小流。

#### Token 过期回调 [#token-过期回调]

增加了 `on_token_privilege_will_expire` 回调，可以在 Token 即将过期时提醒用户获取新的 Token。

### 问题修复 [#问题修复-12]

修复了 `on_user_joined` 回调和 `on_user_offline` 回调只有在发流时才可以触发的问题。从 1.4.0 版开始，`on_user_joined` 回调和 `on_user_offline` 回调在加入频道后就可以触发。

### API 变更 [#api-变更-4]

#### 新增 [#新增-4]

- `agora_rtc_login_rtm`  方法
- `agora_rtc_logout_rtm` 方法
- `agora_rtc_send_rtm_data` 方法
- `on_token_privilege_will_expire` 方法
- `agora_rtc_set_params` 方法
- `on_rtm_data` 回调
- `on_rtm_event` 回调
- `on_send_rtm_data_result` 回调
- `rtc_log_level_e` 枚举类型。
- `agora_err_code_e` 枚举类型新增 `ERR_SEND_VIDEO_OVER_BANDWIDTH_LIMIT`
- `audio_codec_e` 枚举类型新增 `AUDIO_CODEC_PCM_FROM_OPUS`

#### 删除 [#删除-2]

- `agora_rtc_send_cmd` 方法
- `agora_rtc_send_through_rdt` 方法
- `on_cmd` 回调
- `on_data_from_rdt` 回调
- `on_rdt_availability_changed` 回调

#### 变更 [#变更-2]

`agora_rtc_set_log_level` 方法的 `level` 参数从 int 型变为枚举型。枚举值通过 `rtc_log_level_e` 枚举类型定义。

</Accordion>



## 1.3.0 版 [#130-版]

<Accordion title="1.3.0 版" id="130-版" headingLevel={2} value="130-版">

该版本于 2020 年 11 月 24 日发布。

### 升级必看 [#升级必看-9]

#### 改进发送音视频方法 [#改进发送音视频方法]

该版本新增 `audio_frame_info_t` 和 `video_frame_info_t` 结构体，改进了 `agora_rtc_send_audio_data` 和 `agora_rtc_send_video_data` 方法中的参数。

- 对于 `agora_rtc_send_audio_data` 方法，该版本将 `codec` 参数归并至 `audio_frame_info_t` 结构体中。
- 对于 `agora_rtc_send_video_data` 方法，该版本将 `codec` 和 `is_key_frame` 参数归并到 `video_frame_info_t` 结构体中。

#### 动态码率推荐 [#动态码率推荐]

该版本移除了 `on_inc_bitrate` 和 `on_dec_bitrate` 回调，并新增 `on_target_bitrate_changed` 回调进行取代。

网络带宽状况变化时，SDK 会触发 `on_target_bitrate_changed` 回调提示应用程序实时调整发送码率。

#### API 更名 [#api-更名]

该版本进行以下 API 的更名，以确保 API 命名的准确和规范。

- `agora_rtc_credential` 方法更名为 `agora_rtc_license_gen_credential`。
- `agora_rtc_cert` 更名为 `agora_rtc_license_verify`。
- `agora_get_version` 更名为 `agora_rtc_get_version`。
- `agora_err_2_str` 更名为 `agora_rtc_err_2_str`。

#### 错误码和警告码清理 [#错误码和警告码清理]

该版本移除了无用的警告码，并清理了冗杂的错误码，以确保开发者能够得到清晰且准确的报错信息。

### 新增特性 [#新增特性-14]

#### 互通增强 [#互通增强]

该版本增强了 RTSA SDK 间互通的能力，并实现了 RTSA SDK 与[声网 SDK](/zh-CN/realtime-media/rtc) 的互通，详见[产品概述的功能描述](/zh-CN/realtime-media/rtsa)章节。

#### 配置 BWE [#配置-bwe]

该版本新增 `agora_rtc_set_bwe_param` 方法用于配置 BWE (Bandwidth Estimation) 参数。你可根据自己的实际带宽和码率需要调用此方法配置发送码率的最小值、最大值和起始值，详见[动态码率推荐](/zh-CN/realtime-media/rtsa/build/media-transmission/bitrate-adaption)。

### API 变更 [#api-变更-5]

#### 新增 [#新增-5]

- `agora_rtc_set_bwe_param` 方法
- `on_target_bitrate_changed` 回调
- `audio_frame_info_t` 结构体
- `video_frame_info_t` 结构体

#### 变更 [#变更-3]

- `agora_rtc_credential` 更名为 `agora_rtc_license_gen_credential`
- `agora_rtc_cert` 更名为 `agora_rtc_license_verify`
- `agora_get_version` 更名为 `agora_rtc_get_version`
- `agora_err_2_str` 更名为 `agora_rtc_err_2_str`

#### 删除 [#删除-3]

- `on_inc_bitrate`
- `on_dec_bitrate`

</Accordion>



## 1.2.2 版 [#122-版]

<Accordion title="1.2.2 版" id="122-版" headingLevel={2} value="122-版">

该版本于 2019 年 12 月 17 日发布。新增特性和问题修复如下。

### 新增特性 [#新增特性-15]

#### 可靠数据传输 [#可靠数据传输]

v1.2.2 起支持可靠数据传输，适用于数据量少但可靠性高的传输场景。SDK 触发 `on_rdt_availability_changed` 回调报告可靠数据通道状态为可用后，可调用 `agora_rtc_send_cmd` 或 `agora_rtc_send_through_rdt` 方法通过可靠数据通道发送指令或数据。

### 问题修复 [#问题修复-13]

* App 离开频道、进入后台息屏后，无法再次加入频道。
* 调用 API 暂停接收远端音视频流后，依然能收到。
* 4K 高清场景下偶现的丢帧。
* 部分已知 crash。

</Accordion>



## 1.2.1 版 [#121-版]

<Accordion title="1.2.1 版" id="121-版" headingLevel={2} value="121-版">

该版本于 2019 年 8 月 15 日发布。改进如下。

### 改进 [#改进-11]

- 增强 String UID 的注册刷新/失效/一致性检测。
- 完善异常数据包过滤。

</Accordion>



## 1.2.0 版 [#120-版]

<Accordion title="1.2.0 版" id="120-版" headingLevel={2} value="120-版">

该版本于 2019 年 8 月 9 日发布。新增特性和问题修复如下。

### 新增特性 [#新增特性-16]

#### 支持 String 型用户 ID [#支持-string-型用户-id]

v1.2.0 新增 `agora_rtc_init_with_name` 方法，支持用户使用 String 型用户 ID作为用户标识进行初始化。

### 问题修复 [#问题修复-14]

- P2P 链路可通但链路状态拥塞时，消除反复 P2P 连接尝试造成带来的数据传输损伤。

</Accordion>

</Accordions>
