服务端网关 SDK Java API 参考
服务端网关 SDK 部署在服务端,可与集成了 RTC SDK 的客户端通过 SD-RTN™ 进行实时通信,实现向客户端发送音视频流和从客户端接收接收音视频流的功能。
AgoraService 入口
AgoraService类是服务端网关 SDK 的入口。
方法 | 描述 |
---|---|
AgoraService | 创建AgoraService 对象。 |
initialize | 初始化AgoraService 对象。 |
destroy | 销毁AgoraService 对象。 |
agoraRtcConnCreate | 创建一个RtcConnection 对象。 |
createCustomAudioTrackPcm | 创建本地音频轨道对象,包含一个发送 PCM 音频数据的音频源。 |
createCustomAudioTrackEncoded | 创建本地音频轨道对象,包含一个发送编码音频数据的音频源。 |
createMediaNodeFactory | 创建一个媒体节点工厂对象。 |
createCustomVideoTrackFrame | 创建本地视频轨道对象,包含一个发送 YUV 格式视频数据的视频源。 |
createCustomVideoTrackEncoded | 创建本地视频轨道对象,包含一个发送编码视频数据的视频源。 |
getAgoraParameter | 获取 SDK 全局的AgoraParameter 对象。 |
频道连接
你可以通过AgoraRtcConn
类与 RTC 频道建立连接。app 需要提供 App ID、token 及频道名才能加入频道。
方法 | 描述 |
---|---|
connect | 连接 RTC 频道。 |
disconnect | 与 RTC 频道断开连接。 |
startLastmileProbeTest | 开始通话前网络质量探测。 |
stopLastmileProbeTest | 停止通话前网络质量探测。 |
renewToken | 更新 Token。 |
getConnInfo | 获取连接信息。 |
getLocalUser | 获取本地用户信息。 |
getUserInfo | 获取频道中指定用户的信息。 |
registerObserver | 注册 RTC 连接 observerIRtcConnObserver 。 |
unregisterObserver | 销毁 RTC 连接 observerIRtcConnObserver 。 |
getConnId | 获取连接 ID。 |
enableEncryption | 启用/禁用内置加密。 |
getTransportStats | 获取 RTC 连接的传输状态。 |
getAgoraParameter | 获取某个 Connection 中的AgoraParameter 对象。 |
createDataStream | 创建数据流。 |
sendStreamMessage | 发送数据流消息。 |
与 RTC 频道的连接是异步操作。SDK 可以通过 RTC 连接监听器监听本地和远端用户的连接状态。
事件 | 描述 |
---|---|
onConnected | SDK 与频道的连接状态变更为STATE_CONNECTED 时触发。 |
onDisconnected | SDK 与频道的连接状态变更为STATE_DISCONNECTED 时触发。 |
onReconnecting | SDK 与频道的连接状态变更为STATE_RECONNECTING 时触发。 |
onConnectionLost | SDK 与频道断开连接时触发。 |
onLastmileQuality | 报告 last-mile 网络质量。 |
onLastmileProbeResult | 通话前网络上下行 last-mile 质量探测报告回调。 |
onTokenPrivilegeWillExpire | Token 服务将在 30 秒内过期回调。 |
onTokenPrivilegeDidExpire | Token 已过期回调。 |
onConnectionFailure | SDK 与频道的连接状态变更为STATE_FAILED 时触发。 |
onUserJoined | 远端用户加入频道时触发。 |
onUserLeft | 远端用户离开频道时触发。 |
onTransportStats | 报告连接的传输统计信息。 |
onChangeRoleSuccess | 本地用户角色变更时触发。 |
onChangeRoleFailure | 本地用户角色切换失败时触发。 |
onUserNetworkQuality | 通话中每个用户的网络上下行 last-mile 质量报告回调。 |
onError | 发生错误回调。 |
本地用户
与 RTC 频道连接之后,每个 RTC 连接都有自己对应的用户。你可以通过getLocalUser方法获取本地用户对象。
每个本地用户有两个用户角色:主播(可以发送和接收媒体流)和观众(只能接收媒体流)。
方法 | 描述 |
---|---|
setUserRole | 设置用户角色。 |
getUserRole | 获取用户角色。 |
setAudioEncoderConfig | 设置音频编码。 |
publishAudio | 将本地音频轨道发送到频道。 |
unpublishAudio | 停止将本地音频轨道发送到频道。 |
publishVideo | 将本地视频轨道发送到频道。 |
unpublishVideo | 停止将本地视频轨道发送到频道。 |
subscribeAudio | 订阅频道中特定的远端用户发送的音频流。 |
subscribeAllAudio | 订阅频道中全部远端用户发送的音频流。 |
unsubscribeAudio | 停止订阅频道中特定的远端用户发送的音频流。 |
unsubscribeAllAudio | 停止订阅频道中全部远端用户发送的音频流。 |
setPlaybackAudioFrameBeforeMixingParameters | 设置onPlaybackAudioFrameBeforeMixing 报告的音频数据格式。 |
registerAudioFrameObserver | 注册音频帧 observer。 |
unregisterAudioFrameObserver | 销毁音频帧 observer。 |
subscribeVideo | 订阅频道中指定远端用户发送的视频流。 |
subscribeAllVideo | 订阅频道中全部远端用户发送的视频流。 |
unsubscribeVideo | 停止订阅频道中特定的远端用户发送的音频流。 |
unsubscribeAllVideo | 停止订阅频道中全部远端用户发送的视频流。 |
registerObserver | 注册本地用户 observer。 |
unregisterObserver | 销毁本地用户 observer。 |
事件 | 描述 |
---|---|
onAudioTrackPublishSuccess | 在第一个本地音频包发送时触发,表明本地音频轨道已成功发布。 |
onLocalAudioTrackStateChanged | 在本地音频轨道状态变化时触发。 |
onLocalAudioTrackStatistics | 报告本地音频轨道状态。 |
onRemoteAudioTrackStatistics | 报告远端音频轨道状态。 |
onUserAudioTrackSubscribed | 成功订阅远端用户发送的音频流时触发。 |
onUserAudioTrackStateChanged | 在远端音频轨道状态变化时触发。 |
onVideoTrackPublishSuccess | 对远端用户视频订阅状态变更时触发。 |
onLocalVideoTrackStateChanged | 本地视频轨道状态改变时触发。 |
onLocalVideoTrackStatistics | 报告本地视频轨道的统计信息。 |
onUserVideoTrackSubscribed | 成功订阅远端用户发送的视频流时触发。 |
onUserVideoTrackStateChanged | 在远端视频轨道状态变更时触发。 |
onRemoteVideoTrackStatistics | 报告远端视频轨道的统计信息。 |
onStreamMessage | 接收到数据流消息的回调。 |
本地音频轨道
你可以通过createCustomAudioTrackPcm或createCustomAudioTrackEncoded方法创建本地音频轨道。
创建完成之后,你可以通过publishAudio发布一个或多个本地音频轨道。
方法 | 描述 |
---|---|
setEnabled | 开启或关闭本地音频轨道。 |
isEnabled | 获取本地音频轨道的统计信息。 |
getState | 获取本地音频状态。 |
getStats | 获取本地音频轨道的统计信息。 |
adjustPublishVolume | 调整音频发布音量。 |
getPublishVolume | 获取音频发布音量。 |
setMaxBufferedAudioFrameNumber | 设置音频发送缓冲区的最大容量。 |
clearSenderBuffer | 清除当前音频发送缓冲区。 |
setSendDelayMs | 设置音频发送缓冲区允许发送的最小数据时长。 |
远端音频轨道
方法 | 描述 |
---|---|
getStatistics | 获取远端音频统计信息。 |
getState | 获取远端音频状态。 |
本地视频轨道
你可以通过createCustomVideoTrackFrame或createCustomVideoTrackEncoded创建本地视频轨道。
你可以通过AgoraLocalUser.publishVideo发送一个或多个视频轨道。每个视频轨道都对应一条视频流。你也可以同时发送多条视频流。
方法 | 描述 |
---|---|
setEnabled | 开启或关闭本地视频轨道。 |
setVideoEncoderConfig | 设置视频编码属性。 |
getState | 获取本地视频流状态。 |
getStatistics | 获取本地视频统计数据。 |
远端视频轨道
方法 | 描述 |
---|---|
getState | 获取远端视频轨道的状态。 |
getTrackInfo | 获取远端视频轨道的信息。 |
registerVideoEncodedImageReceiver | 注册AgoraVideoEncodedImageReceiver 对象。 |
unregisterVideoEncodedImageReceiver | 销毁AgoraVideoEncodedImageReceiver 对象。 |
媒体节点工厂
使用媒体节点工厂对象为音频和视频轨道创建音频或视频处理节点,例如音视频发送模块、接收模块等。
方法 | 描述 |
---|---|
createAudioPcmDataSender | 创建一个 PCM 数据发送模块。 |
createAudioEncodedFrameSender | 创建一个已编码音频数据发送模块。 |
createVideoFrameSender | 创建一个 YUV 视频帧发送模块。 |
createVideoEncodedImageSender | 创建一个已编码视频发送模块。 |
音频发送模块
方法 | 描述 |
---|---|
AgoraAudioPcmDataSender.send | 将 PCM 格式的音频数据发送到本地音频轨道。 |
AgoraAudioEncodedFrameSender.send | 将已编码的音频帧发送到本地音频轨道。 |
视频发送模块
方法 | 描述 |
---|---|
AgoraVideoFrameSender.send | 将 YUV 格式的视频帧发送到视频轨道。 |
AgoraVideoEncodedImageSender.send | 将已编码的视频帧发送到视频轨道。 |