服务端网关 SDK C++ API 参考 文档

  • C++

更新时间不可用

服务端网关 SDK 部署在服务端,可与集成了 RTC SDK 的客户端通过 SD-RTN™ 进行实时通信,实现向客户端发送音视频流和从客户端接收音视频流的功能。

IAgoraService

IAgoraService 类是服务端网关 SDK 的入口。

方法描述
createAgoraService创建 IAgoraService 对象。
initialize初始化 IAgoraService 对象。
release销毁 IAgoraService 对象。
createRtcConnection创建一个 RtcConnection 对象。
createRtmpConnection创建一个 IRtmpConnection 对象。
createLocalAudioTrack创建本地音频轨道对象。
createCustomAudioTrack1创建本地音频轨道对象,包含一个发送编码音频数据的音频源。
createCustomAudioTrack2创建本地音频轨道对象,包含一个发送 PCM 音频数据的音频源。
createMediaNodeFactory创建一个媒体节点工厂对象。
createCustomVideoTrack1创建本地视频轨道对象,包含一个发送 YUV 格式视频数据的视频源。
createCustomVideoTrack2创建本地视频轨道对象,包含一个发送编码视频数据的视频源。
createMixedVideoTrack创建本地视频轨道对象,包含一个合图器。
getAgoraParameter获取 SDK 全局的 IAgoraParameter 对象。
表格内容超出当前宽度,可横向滚动查看更多列。

IRtcConnection

你可以通过 IRtcConnection 类与 Agora RTC 频道建立连接。

方法描述
connect连接 RTC 频道。
disconnect与 RTC 频道断开连接。
startLastmileProbeTest开始通话前网络质量探测。
stopLastmileProbeTest停止通话前网络质量探测。
renewToken更新 Token。
getConnectionInfo获取连接信息。
getLocalUser获取本地用户信息。
getRemoteUsers获取频道中全部远端用户的信息。
getUserInfo获取频道中指定远端用户的信息。
registerObserver注册 RTC 连接 observer。
unregisterObserver销毁网络状态 observer。
getConnId获取连接 ID。
getTransportStats获取 RTC 连接的传输状态。
getAgoraParameter获取某个 Connection 中 IAgoraParameter 对象。
createDataStream创建数据流。
sendStreamMessage发送数据流消息。
表格内容超出当前宽度,可横向滚动查看更多列。

与 Agora 频道的连接是异步操作。SDK 可以通过 RTC 连接监听器监听本地和远端用户的连接状态。

事件描述
onConnectedSDK 与频道的连接状态变更为 CONNECTION_STATE_CONNECTED(3) 时触发。
onDisconnectedSDK 与频道的连接状态变更为 CONNECTION_STATE_DISCONNECTED(1) 时触发。
onReconnectingSDK 与频道的连接状态变更为 CONNECTION_STATE_RECONNECTING(4) 时触发。
onConnectionLostSDK 与频道断开连接时触发。
onLastmileQuality报告 last-mile 网络质量。
onLastmileProbeResult通话前网络上下行 Last mile 质量探测报告回调。
onTokenPrivilegeWillExpireToken 服务将在 30s 内过期回调。
onTokenPrivilegeDidExpireToken 已过期回调。
onConnectionFailureSDK 与频道的连接状态变更为 CONNECTION_STATE_FAILED(5) 时触发。
onUserJoined远端用户加入频道时触发。
onUserLeft远端用户离开频道时触发。
onTransportStats报告连接的传输统计信息。
onChangeRoleSuccess本地用户角色变更时触发。
onChangeRoleFailure本地用户角色切换失败时触发。
onUserNetworkQuality通话中每个用户的网络上下行 last mile 质量报告回调。
onError发生错误回调。
表格内容超出当前宽度,可横向滚动查看更多列。

ILocalUser

与 RTC 频道连接之后,每个 RTC 连接都有自己对应的用户。你可以通过 getLocalUser 方法获取本地用户对象。

每个本地用户有两个用户角色:主播(可以发送和接收媒体流)和观众(只能接收媒体流)。

方法描述
setUserRole设置用户角色。
getUserRole获取用户角色。
setAudioEncoderConfiguration设置音频编码。
publishAudio将本地音频轨道发送到频道。
unpublishAudio停止将本地音频轨道发送到频道。
publishVideo将本地视频轨道发送到频道。
unpublishVideo停止将本地视频轨道发送到频道。
subscribeAudio订阅频道中特定的远端用户发送的音频流。
subscribeAllAudio订阅频道中全部远端用户发送的音频流。
unsubscribeAudio停止订阅频道中特定的远端用户发送的音频流。
unsubscribeAllAudio停止订阅频道中全部远端用户发送的音频流。
setPlaybackAudioFrameBeforeMixingParameters设置 onPlaybackAudioFrameBeforeMixing 报告的音频数据格式。
registerAudioFrameObserver注册音频帧 observer。
unregisterAudioFrameObserver取消注册音频帧 observer。
subscribeVideo订阅频道中指定远端用户发送的视频流。
subscribeAllVideo订阅频道中全部远端用户发送的视频流。
unsubscribeVideo停止订阅频道中特定的远端用户发送的音频流。
unsubscribeAllVideo停止订阅频道中全部远端用户发送的视频流。
registerLocalUserObserver注册本地用户 observer。
unregisterLocalUserObserver销毁本地用户 observer。
表格内容超出当前宽度,可横向滚动查看更多列。
事件描述
onAudioTrackPublishSuccess在第一个本地音频包发送时触发,表明本地音频轨道已成功发布。
onLocalAudioTrackStateChanged在本地音频轨道状态变化时触发。
onLocalAudioTrackStatistics报告本地音频轨道状态。
onRemoteAudioTrackStatistics报告远端音频轨道状态。
onUserAudioTrackSubscribed成功订阅远端用户发送的音频流时触发。
onUserAudioTrackStateChanged在远端音频轨道状态变化时触发。
onVideoTrackPublishSuccess对远端用户视频订阅状态变更时触发。
onLocalVideoTrackStateChanged本地视频轨道状态改变时触发。
onLocalVideoTrackStatistics报告本地视频轨道的统计信息。
onUserVideoTrackSubscribed成功订阅远端用户发送的视频流时触发。
onUserVideoTrackStateChanged在远端视频轨道状态变更时触发。
onRemoteVideoTrackStatistics报告远端视频轨道的统计信息。
onStreamMessage接收到数据流消息的回调。
表格内容超出当前宽度,可横向滚动查看更多列。

ILocalAudioTrack

你可以通过 createCustomAudioTrack 方法创建本地音频轨道。

创建完成之后,你可以通过 ILocalUser::publishAudio 发布一个或多个本地音频轨道。

方法描述
setEnabled开启或关闭本地音频轨道。
isEnabled获取本地音频轨道的统计信息。
getState获取本地音频状态。
GetStats获取本地音频轨道的统计信息。
adjustPublishVolume调整音频发布音量。
getPublishVolume获取音频发布音量。
setMaxBufferedAudioFrameNumber设置音频发送缓冲区的最大容量。
ClearSenderBuffer清除当前音频发送缓冲区。
setAudioFrameSendDelayMs设置音频发送缓冲区允许发送的最小数据时长。
表格内容超出当前宽度,可横向滚动查看更多列。

IRemoteAudioTrack

你可以通过 onUserAudioTrackSubscribed 回调获取远端音频轨道。

方法描述
getStatistics获取远端音频状态。
getState获取远端音频统计信息。
表格内容超出当前宽度,可横向滚动查看更多列。

ILocalVideoTrack

你可以通过 createCustomVideoTrack 创建本地视频轨道。

你可以通过 ILocalUser::publishVideo 发送一个或多个视频轨道。每个视频轨道都对应一条视频流。你也可以同时发送多条视频流。

方法描述
setEnabled开启或关闭本地视频轨道。
setVideoEncoderConfiguration设置视频编码属性。
getState获取本地视频流状态。
表格内容超出当前宽度,可横向滚动查看更多列。

IRemoteVideoTrack

你可以通过 onUserVideoTrackSubscribed 回调获取远端视频轨道。

方法描述
getState获取远端视频轨道的状态。
getTrackInfo获取远端视频轨道的信息。
registerVideoEncodedImageReceiver注册 IVideoEncodedImageReceiver 对象。
unregisterVideoEncodedImageReceiver销毁 IVideoEncodedImageReceiver 对象。
addRenderer将视频接收模块加入视频轨道,用于接收视频帧。
表格内容超出当前宽度,可横向滚动查看更多列。

IMediaNodeFactory

使用 IMediaNodeFactory 类为音频和视频轨道创建音频或视频处理节点,例如音视频发送模块、接收模块等。

方法描述
createAudioPcmDataSender创建一个 PCM 数据发送模块。
createAudioEncodedFrameSender创建一个已编码音频数据发送模块。
createVideoFrameSender创建一个 YUV 视频帧发送模块。
createVideoEncodedImageSender创建一个已编码视频发送模块。
表格内容超出当前宽度,可横向滚动查看更多列。

IRtmpConnection

你可以通过 IRtmpConnection 类管理 SDK 与 CDN 之间的连接。

方法描述
registerObserver注册 CDN 连接 observer。
connect连接 CDN。
disconnect与 CDN 断开连接。
getConnectionInfo获取连接信息。
getRtmpLocalUser获取本地用户对象的指针。
unregisterObserver销毁 CDN 连接 observer。
表格内容超出当前宽度,可横向滚动查看更多列。
事件描述
onConnectedSDK 与 CDN 的连接状态变更为 STATE_CONNECTED(3) 时触发。
onDisconnectedSDK 与 CDN 的连接状态变更为 STATE_DISCONNECTED(1) 时触发。
onReconnectingSDK 与 CDN 的连接状态变更为 STATE_RECONNECTING(4) 时触发。
onReconnectedSDK 与 CDN 的连接状态变更为 STATE_RECONNECTED(6) 时触发。
onConnectionFailureSDK 与 CDN 的连接状态变更为 STATE_FAILED(5) 时触发。
onTransferStatisticsCDN 推流统计数据回调。
表格内容超出当前宽度,可横向滚动查看更多列。

IRtmpLocalUser

每个 CDN 连接都有自己对应的用户。你可以通过 getRtmpLocalUser 方法获取本地用户对象。

方法描述
setAudioStreamConfiguration设置主播端直接向 CDN 推流时的音频编码属性。
setVideoStreamConfiguration设置主播端直接向 CDN 推流时的视频编码属性。
adjustRecordingSignalVolume调节主播端直接向 CDN 推流时的音频采集信号音量。
getRecordingSignalVolume获取主播端直接向 CDN 推流时的音频采集信号音量。
setAudioEnabled在 CDN 推流中开启或关闭本地音频。
adjustVideoBitrate调节主播端直接向 CDN 推流时的视频编码码率。
setVideoEnabled在 CDN 推流中开启或关闭本地视频。
publishAudio主播端开始直接向 CDN 推送本地音频流。
unpublishAudio主播端停止直接向 CDN 推送本地音频流。
publishVideo主播端开始直接向 CDN 推送本地视频流。
unpublishVideo主播端停止直接向 CDN 推送本地视频流。
registerRtmpUserObserver注册 CDN 推流用户观测器。
unregisteRtmpUserObserver注销 CDN 推流用户观测器。
registerAudioFrameObserver注册音频观测器。
unregisterAudioFrameObserver注销音频观测器。
registerVideoFrameObserver注册视频观测器。
unregisterVideoFrameObserver注销视频观测器。
表格内容超出当前宽度,可横向滚动查看更多列。
事件描述
onAudioTrackPublishSuccess推送音频帧成功回调。
onAudioTrackPublicationFailure推送音频帧失败回调。
onVideoTrackPublishSuccess推送视频帧成功回调。
onVideoTrackPublicationFailure推送视频帧失败回调。
表格内容超出当前宽度,可横向滚动查看更多列。

音频发送模块

方法描述
sendAudioPcmData将 PCM 格式的音频数据发送到本地音频轨道。
sendEncodedAudioFrame将已编码的音频帧发送到本地音频轨道。
表格内容超出当前宽度,可横向滚动查看更多列。

视频发送模块

方法描述
sendVideoFrame将 YUV 格式的视频帧发送到视频轨道。
sendEncodedVideoImage将已编码的视频帧发送到视频轨道。
表格内容超出当前宽度,可横向滚动查看更多列。

IConfigCenter

SDK 的其他配置。

方法描述
SetLocalAccessPoint配置与声网私有媒体服务器接入模块的连接。
表格内容超出当前宽度,可横向滚动查看更多列。