本页提供 RTSA Lite C SDK for Linux 的发版说明。
该版本于 2023 年 1 月 4 日发布。
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 仅访问指定域名的网络,从而保证使用定向物联网卡的设备与其他设备互通。
音频处理选项
该版本在 rtc_channel_options_t
中新增 audio_process_opt
参数,你可以设置是否开启回声消除、降噪等音频处理选项。
日志打印
该版本在 log_config_t
中新增 log_tag
和 log_printf
参数,你分别设置日志标志、实现日志打印函数,SDK 会通过该设置打印日志。
该版本改善了弱网环境下的音视频体验。
该版本修复了一些问题。
该版本于 2022 年 8 月 1 日发布。
1.8.0 版相比 1.7.3 版,大部分 API 都发生了变更或重新设计。如果你将 SDK 从 1.7.3 版升级到该版本,你需要重新集成 SDK。集成方式详见实现媒体流和信令传输。
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
:创建 Connectionagora_rtc_destroy_connection
:销毁 Connectionagora_rtc_get_connection_info
:获取 Connection 信息Connection 通过 agora_rtc_join_channel
与 RTC 频道和用户 ID 进行绑定。在你调用 agora_rtc_leave_channel
之后,绑定结束。
你可以通过 Connection ID 机制实现多频道推流和单频道推多路流,详见多频道发流和单频道多路发流。
不再支持 String 型用户 ID
自该版本起,SDK 不再支持 String 型用户 ID,相关接口也从 SDK 中删除。
修复了一些 SDK 的问题。
该版本于 2022 年 5 月 19 日发布。
SDK 新增对以下加密模式的支持:
aes-128-ecb
aes-128-xts
aes-256-xts
salt 类型新增对 Base64 编码的支持。
修复了一些 SDK 的问题。
该版本于 2022 年 3 月 16 日发布。
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
。云代理
新增 agora_rtc_set_cloud_proxy
方法,用于设置声网云代理。
音视频通道加密
rtc_channel_options_t
结构体新增 bool
enable_encrypt
成员,用于开启或关闭音视频通道加密功能。
传输 G711 编码的音频数据
自该版本起,audio_frame_info_t
结构体的 audio_data_type_e
枚举增加 AUDIO_DATA_TYPE_PCMU
和 AUDIO_DATA_TYPE_PCMA
,用于支持 SDK 传输 G711 格式的音频数据。
直接传输 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 音频数据。
新增
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
参数该版本于 2021 年 9 月 24 日发布。
该版本有以下兼容性改动。
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
接口。
增加 on_mixed_audio_data
回调。你可以通过此回调在本地获取混音数据。
该版本支持从 Web SDK 接收 H.264 视频流。自该版本起,RTSA Lite SDK 支持与 Web SDK 的双向互通。
License 激活工具使用 HTTPS 协议,增强了安全性。
on_mixed_audio_data
agora_rtc_join_channel
新增 uid
参数
rtc_service_option_t
结构体新增以下参数:
product_id
product_id_length
use_string_uid
agora_rtc_init_with_name
agora_rtc_init
删除 uid
参数。该版本于 2021 年 5 月 31 日发布。
该版本支持在调用 agora_rtc_init
初始化 SDK 时指定服务器的访问区域。该功能为高级设置,适用于有访问安全限制的场景。目前支持的区域有中国大陆、北美、欧洲、日本、印度、亚洲(中国大陆除外)和全球(默认)。详见限定访问区域。
通过优化登录时间,解决了 RTM 登录过慢的问题。
新增
agora_rtc_init
新增 option
参数area_code_e
枚举rtc_service_option_t
结构体ERR_DYNAMIC_TOKEN_BUT_USE_STATIC_KEY
错误码该版本于 2021 年 4 月 11 日发布。
该版本修复了以下问题:
该版本于 2021 年 3 月 11 日发布。
agora_rtc_join_channel
方法新增了 options
参数,用于设置订阅媒体类型和 SDK 内置的音频编解码器。agora_rtc_join_channel
方法加入频道后,SDK 默认不订阅任何音频流和视频流。如果你需要进行订阅操作,必须通过 options
参数设置 rtc_channel_options_t
结构体的 auto_subscribe_audio
成员和 auto_subscribe_video
成员。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
。自定义订阅媒体类型
你可以通过 rtc_channel_options_t
结构体的 auto_subscribe_audio
成员和 auto_subscribe_video
成员选择订阅媒体类型。选项包括:
设置 SDK 内置的音频编解码器参数
你可以通过 rtc_channel_options_t
结构体的 audio_codec_opt
成员设置 SDK 内置的音频编解码器参数,包括:
发送 JPEG 编码的视频帧
你可以通过设置 agora_rtc_send_video_data
的 info_ptr
参数发送 JPEG 编码的视频帧。
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
。新增
agora_rtc_join_channel
方法新增了 options
参数video_codec_e
枚举类型新增 VIDEO_CODEC_GENERIC_JPEG
rtc_channel_options_t
结构体audio_codec_option_t
枚举类型变更
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
该版本于 2021 年 2 月 24 日发布。
License 激活机制更新
自该版本起,License 激活机制基于安全性考虑进行了更新。详见跑通示例项目。
数据传输接口替换
自该版本起,基于可靠数据通道 (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
枚举类型定义。
基于云信令 (原 RTM) 的信令接口
增加了基于云信令 (原 RTM) 的信令接口。你可以通过此接口发送和接收消息,并获取用户状态变化通知。
传输 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 过期回调
增加了 on_token_privilege_will_expire
回调,可以在 Token 即将过期时提醒用户获取新的 Token。
修复了 on_user_joined
回调和 on_user_offline
回调只有在发流时才可以触发的问题。从 1.4.0 版开始,on_user_joined
回调和 on_user_offline
回调在加入频道后就可以触发。
新增
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
删除
agora_rtc_send_cmd
方法agora_rtc_send_through_rdt
方法on_cmd
回调on_data_from_rdt
回调on_rdt_availability_changed
回调变更
agora_rtc_set_log_level
方法的 level
参数从 int 型变为枚举型。枚举值通过 rtc_log_level_e
枚举类型定义。
该版本于 2020 年 11 月 24 日发布。
改进发送音视频方法
该版本新增 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 命名的准确和规范。
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
。错误码和警告码清理
该版本移除了无用的警告码,并清理了冗杂的错误码,以确保开发者能够得到清晰且准确的报错信息。
互通增强
该版本增强了 RTSA SDK 间互通的能力,并实现了 RTSA SDK 与声网 SDK 的互通,详见产品概述的功能描述章节。
配置 BWE
该版本新增 agora_rtc_set_bwe_param
方法用于配置 BWE (Bandwidth Estimation) 参数。你可根据自己的实际带宽和码率需要调用此方法配置发送码率的最小值、最大值和起始值,详见动态码率推荐。
新增
agora_rtc_set_bwe_param
方法on_target_bitrate_changed
回调audio_frame_info_t
结构体video_frame_info_t
结构体变更
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
删除
on_inc_bitrate
on_dec_bitrate
该版本于 2019 年 12 月 17 日发布。新增特性和问题修复如下。
可靠数据传输
v1.2.2 起支持可靠数据传输,适用于数据量少但可靠性高的传输场景。SDK 触发 on_rdt_availability_changed
回调报告可靠数据通道状态为可用后,可调用 agora_rtc_send_cmd
或 agora_rtc_send_through_rdt
方法通过可靠数据通道发送指令或数据。
该版本于 2019 年 8 月 15 日发布。改进如下。
该版本于 2019 年 8 月 9 日发布。新增功能和修复问题如下。
支持 String 型用户 ID
v1.2.0 新增 agora_rtc_init_with_name
方法,支持用户使用 String 型用户 ID作为用户标识进行初始化。