服务端网关 SDK Java API 参考

  • Java

更新时间不可用

服务端网关 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 连接 Observer IRtcConnObserver。
unregisterObserver销毁 RTC 连接 Observer IRtcConnObserver。
getConnId获取连接 ID。
enableEncryption启用/禁用内置加密。
getTransportStats获取 RTC 连接的传输状态。
getAgoraParameter获取某个 Connection 中的 AgoraParameter 对象。
createDataStream创建数据流。
sendStreamMessage发送数据流消息。
表格内容超出当前宽度,可横向滚动查看更多列。

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

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

本地用户

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

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

方法描述
setUserRole设置用户角色。
getUserRole获取用户角色。
setAudioEncoderConfig设置音频编码。
publishAudio将本地音频轨道发送到频道。
unpublishAudio停止将本地音频轨道发送到频道。
publishVideo将本地视频轨道发送到频道。
unpublishVideo停止将本地视频轨道发送到频道。
subscribeAudio订阅频道中特定的远端用户发送的音频流。
subscribeAllAudio订阅频道中全部远端用户发送的音频流。
unsubscribeAudio停止订阅频道中特定的远端用户发送的音频流。
unsubscribeAllAudio停止订阅频道中全部远端用户发送的音频流。
setPlaybackAudioFrameBeforeMixingParameters设置 onPlaybackAudioFrameBeforeMixing 报告的音频数据格式。
registerAudioFrameObserver注册音频帧 Observer。
unregisterAudioFrameObserver取消注册音频帧 Observer。
registerVideoFrameObserver注册视频帧 Observer。
unregisterVideoFrameObserver取消注册视频帧 Observer。
registerAudioEncodedFrameObserver注册编码后的音频帧 Observer。
unregisterAudioEncodedFrameObserver取消注册编码后的音频帧 Observer。
registerVideoEncodedFrameObserver注册编码后的视频帧 Observer。
unregisterVideoEncodedFrameObserver取消注册编码后的视频帧 Observer。
subscribeVideo订阅频道中指定远端用户发送的视频流。
subscribeAllVideo订阅频道中全部远端用户发送的视频流。
unsubscribeVideo停止订阅频道中特定的远端用户发送的音频流。
unsubscribeAllVideo停止订阅频道中全部远端用户发送的视频流。
registerObserver注册本地用户 Observer。
unregisterObserver销毁本地用户 Observer。
sendAudioMetaData发送音频 Metadata 数据。
表格内容超出当前宽度,可横向滚动查看更多列。
事件描述
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接收到远端用户编码后的视频数据回调。
表格内容超出当前宽度,可横向滚动查看更多列。