服务端网关 SDK Java API 参考
v4.4.32
v4.4.32
v4.4.30
v4.0.1
服务端网关 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 | 发生错误回调。 |
onStreamMessageError | 接收数据流消息发生错误的回调。 |
本地用户
与 RTC 频道连接之后,每个 RTC 连接都有自己对应的用户。你可以通过getLocalUser方法获取本地用户对象。
每个本地用户有两个用户角色:主播(可以发送和接收媒体流)和观众(只能接收媒体流)。
事件 | 描述 |
---|---|
onAudioTrackPublishSuccess | 在第一个本地音频包发送时触发,表明本地音频轨道已成功发布。 |
onLocalAudioTrackStateChanged | 在本地音频轨道状态变化时触发。 |
onLocalAudioTrackStatistics | 报告本地音频轨道状态。 |
onRemoteAudioTrackStatistics | 报告远端音频轨道状态。 |
onUserAudioTrackSubscribed | 成功订阅远端用户发送的音频流时触发。 |
onUserAudioTrackStateChanged | 在远端音频轨道状态变化时触发。 |
onVideoTrackPublishSuccess | 对远端用户视频订阅状态变更时触发。 |
onLocalVideoTrackStateChanged | 本地视频轨道状态改变时触发。 |
onLocalVideoTrackStatistics | 报告本地视频轨道的统计信息。 |
onUserVideoTrackSubscribed | 成功订阅远端用户发送的视频流时触发。 |
onUserVideoTrackStateChanged | 在远端视频轨道状态变更时触发。 |
onRemoteVideoTrackStatistics | 报告远端视频轨道的统计信息。 |
onStreamMessage | 接收到数据流消息的回调。 |
onAudioMetaDataReceived | 接收到对方音频 Metadata 数据的回调。 |
本地音频轨道
你可以通过createCustomAudioTrackPcm或createCustomAudioTrackEncoded方法创建本地音频轨道。
创建完成之后,你可以通过publishAudio发布一个或多个本地音频轨道。
方法 | 描述 |
---|---|
setEnabled | 开启或关闭本地音频轨道。 |
isEnabled | 获取本地音频轨道的统计信息。 |
getState | 获取本地音频状态。 |
getStats | 获取本地音频轨道的统计信息。 |
adjustPublishVolume | 调整音频发布音量。 |
getPublishVolume | 获取音频发布音量。 |
setMaxBufferedAudioFrameNumber | 设置音频发送缓冲区的最大容量。 |
clearSenderBuffer | 清除当前音频发送缓冲区。 |
setSendDelayMs | 设置音频发送缓冲区允许发送的最小数据时长。 |
远端音频轨道
方法 | 描述 |
---|---|
getStatistics | 获取远端音频统计信息。 |
getState | 获取远端音频状态。 |
本地视频轨道
你可以通过createCustomVideoTrackFrame或createCustomVideoTrackEncoded创建本地视频轨道。
你可以通过AgoraLocalUser.publishVideo发送一个或多个视频轨道。每个视频轨道都对应一条视频流。你也可以同时发送多条视频流。
方法 | 描述 |
---|---|
setEnabled | 开启或关闭本地视频轨道。 |
setVideoEncoderConfig | 设置视频编码属性。 |
getState | 获取本地视频流状态。 |
getStatistics | 获取本地视频统计数据。 |
远端视频轨道
方法 | 描述 |
---|---|
getState | 获取远端视频轨道的状态。 |
getTrackInfo | 获取远端视频轨道的信息。 |
媒体节点工厂
使用媒体节点工厂对象为音频和视频轨道创建音频或视频处理节点,例如音视频发送模块、接收模块等。
方法 | 描述 |
---|---|
createAudioPcmDataSender | 创建一个 PCM 数据发送模块。 |
createAudioEncodedFrameSender | 创建一个已编码音频数据发送模块。 |
createVideoFrameSender | 创建一个 YUV 视频帧发送模块。 |
createVideoEncodedImageSender | 创建一个已编码视频发送模块。 |
音频发送模块
方法 | 描述 |
---|---|
sendAudioPcmData | 将 PCM 格式的音频数据发送到本地音频轨道。 |
sendEncodedAudioFrame | 将已编码的音频帧发送到本地音频轨道。 |
音频接收模块
方法 | 描述 |
---|---|
onRecordAudioFrame | 获得录制的声音。 |
onPlaybackAudioFrame | 获得播放的声音。 |
onMixedAudioFrame | 获取采集和播放声音混音后的数据。 |
onPlaybackAudioFrameBeforeMixing | 获得播放声音混音前的数据。 |
onEncodedAudioFrameReceived | 接收到远端用户编码后的音频数据回调。 |
视频发送模块
方法 | 描述 |
---|---|
sendVideoFrame | 将 YUV 格式的视频帧发送到视频轨道。 |
sendEncodedVideoImage | 将已编码的视频帧发送到视频轨道。 |
视频接收模块
方法 | 描述 |
---|---|
onFrame | 接收到视频数据时触发。 |
onEncodedVideoFrame | 接收到远端用户编码后的视频数据回调。 |