You need to enable JavaScript to run this app.
导航

API 详情

最近更新时间2024.01.09 19:13:16

首次发布时间2022.09.14 20:26:33

RTS
public abstract class com.ss.bytertc.rts.engine.RTS

RTS engine API class

静态函数

返回名称
static synchronized RTScreateRTS
static synchronized voiddestroyRTS
static StringgetSdkVersion
static intsetLogConfig

成员函数

返回名称
abstract voidsetRtsEventHandler
abstract intlogin
abstract intlogout
abstract intupdateLoginToken
abstract intsetServerParams
abstract intgetPeerOnlineStatus
abstract longsendMessage
abstract longsendBinaryMessage
abstract longsendServerMessage
abstract longsendServerBinaryMessage
abstract RTSRoomcreateRoom
abstract intsetBusinessId
abstract intsetRuntimeParameters
abstract intsetCellularEnhancement
abstract intsetLocalProxy

函数说明

createRTS

public static synchronized RTS com.ss.bytertc.rts.engine.RTS.createRTS(
    Context context,
    String appId,
    IRTSEventHandler handler,
    JSONObject parameters)

创建引擎对象。

如果当前进程中未创建引擎实例,那么你必须先使用此方法,以使用 RTS 提供的各种消息能力。

如果当前进程中已创建了引擎实例,再次调用此方法时,会创建另一个独立的引擎实例。

传入参数

参数名类型说明
contextContextAndroid 应用 Context
appIdString每个应用的唯一标识符,由控制台随机生成的。不同的 AppId 生成的实例完全独立,无法互通。
handlerIRTSEventHandlerSDK 回调给应用层的 Handler,详见 IRTSEventHandler。你应注意保持 handler 的生命周期必须大于引擎的生命周期,即 handler 必须在调用 destroyRTS 之后销毁。
parametersJSONObject用以覆盖默认参数的本引擎实例参数。JSON 字符串格式。

返回值

  • RTS:创建成功。返回一个可用的 RTSImpl 实例
  • Null:.so 文件加载失败,创建失败。

destroyRTS

public static synchronized void com.ss.bytertc.rts.engine.RTS.destroyRTS()

销毁由 createRTS 所创建引擎实例,并释放所有相关资源。

注意

  • 请确保和需要销毁的 RTS 实例相关的业务场景全部结束后,才调用此方法
  • 该方法在调用之后,会销毁所有和此 RTS 实例相关的内存,并且停止与媒体服务器的任何交互
  • 调用本方法会启动 SDK 退出逻辑。引擎线程会保留,直到退出逻辑完成。因此,不要在回调线程中直接调用此 API,也不要在回调中等待主线程的执行,并同时在主线程调用本方法。不然会造成死锁。

getSdkVersion

public static String com.ss.bytertc.rts.engine.RTS.getSdkVersion()

获取 SDK 当前的版本号。

返回值
SDK 当前的版本号。

setLogConfig

public static int com.ss.bytertc.rts.engine.RTS.setLogConfig(
    RTCLogConfig logConfig)

配置 SDK 本地日志参数,包括日志级别、存储路径、可使用的最大缓存空间。

传入参数

参数名类型说明
logConfigRTCLogConfig本地日志参数,参看 RTCLogConfig

返回值

  • 0:成功。
  • –1:失败,本方法必须在创建引擎前调用。
  • –2:失败,参数填写错误。

注意
本方法必须在调用 createRTS 之前调用。

setRtsEventHandler

public abstract void com.ss.bytertc.rts.engine.RTS.setRtsEventHandler(
    IRTSEventHandler engineEventHandler)

设置引擎事件回调的接收类。

传入参数

参数名类型说明
engineEventHandlerIRTSEventHandler事件处理器回调类,详见 IRTSEventHandler

注意

  • 调用方需要自行实现一个继承自 IRTSEventHandler 的类,并重载其中需要关注的事件。
  • 该回调类为异步回调
  • 所有的事件回调均会在独立的回调线程内触发,请接收回调事件时注意所有与线程运行环境有关的操作,如需要在 UI 线程内执行的操作等,请勿直接在回调函数的实现中直接进行操作。

login

public abstract int com.ss.bytertc.rts.engine.RTS.login(
    String token,
    String uid)

登录 RTS 服务器。

必须先登录,才能收发消息。

在调用本接口登录后,如果想要登出,需要调用 logout

传入参数

参数名类型说明
tokenString用户登录必须携带的 Token,用于鉴权验证。
测试时可使用控制台生成临时 Token,roomId 填任意值。
正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token,roomId 置空,Token 有效期及生成方式参看使用 Token 完成鉴权
uidString用户 ID,在 appid 的维度下需唯一。

返回值

  • 0:成功
  • -1:失败。无效参数
  • -2:无效调用。用户已经登录。成功登录后再次调用本接口将收到此返回值
  • -3:失败。Engine 为空。调用 createRTS 创建引擎实例后再调用本接口。

注意
本地用户调用此方法登录成功后,会收到 onLoginResult 回调通登录结果。

logout

public abstract int com.ss.bytertc.rts.engine.RTS.logout()

登出 RTS 服务器。

调用本接口登出后,无法再调用消息相关的方法或收到相关回调。

返回值

  • 0: 调用成功。
  • < 0 : 调用失败。查看 ReturnStatus 获得更多错误说明

注意
本地用户调用此方法登出后,会收到 onLogout 回调通知结果,远端用户不会收到通知。

updateLoginToken

public abstract int com.ss.bytertc.rts.engine.RTS.updateLoginToken(
    String token)

更新用户用于登录的 Token。

Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。

调用 login 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 onLoginResult 回调通知,错误码为 LOGIN_ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。

传入参数

参数名类型说明
tokenString更新的动态密钥

返回值

  • 0: 调用成功。
  • < 0 : 调用失败。查看 ReturnStatus 获得更多错误说明

注意

  • 如果 Token 无效导致登录失败,则调用此方法更新 Token 后,SDK 会自动重新登录,而用户不需要自己调用 login 方法。
  • Token 过期时,如果已经成功登录,则不会受到影响。Token 过期的错误会在下一次使用过期 Token 登录时,或因本地网络状况不佳导致断网重新登录时通知给用户。

setServerParams

public abstract int com.ss.bytertc.rts.engine.RTS.setServerParams(
    String signature,
    String url)

设置应用服务器参数。

客户端调用 sendServerMessagesendServerBinaryMessage 发送消息给应用服务器之前,必须需要设置有效签名和应用服务器地址。

传入参数

参数名类型说明
signatureString动态签名。
应用服务器会使用该签名对请求进行鉴权验证。
urlString应用服务器的地址。

返回值

  • 0: 调用成功。
  • < 0 : 调用失败。查看 ReturnStatus 获得更多错误说明

注意

  • 用户必须调用 login 登录后,才能调用本接口。
  • 调用本接口后,SDK 会使用 onServerParamsSetResult 返回相应结果。

getPeerOnlineStatus

public abstract int com.ss.bytertc.rts.engine.RTS.getPeerOnlineStatus(
    String peer_user_id)

查询本地/远端用户的登录状态。

在发送消息之前,你可以通过本接口了解对端用户是否登录,从而决定是否发送消息。也可以通过本接口查询自己查看自己的登录状态。

传入参数

参数名类型说明
peer_user_idString需要查询的用户 ID

返回值

  • 0: 调用成功。
  • < 0 : 调用失败。查看 ReturnStatus 获得更多错误说明

注意

  • 必须调用 login 登录后,才能调用本接口。
  • 调用本接口后,SDK 会使用 onGetPeerOnlineStatus 回调通知查询结果。

sendMessage

public abstract long com.ss.bytertc.rts.engine.RTS.sendMessage(
    String uid,
    String message,
    MessageConfig config)

给指定的用户发送点对点文本消息(p2p)。

传入参数

参数名类型说明
uidString消息接收用户的 ID。
messageString发送的文本消息内容,消息不超过 64KB。
configMessageConfig消息类型,参看 MessageConfig

返回值

  • >0:发送成功,返回这次发送消息的编号,从 1 开始递增
  • -1:发送失败,RTS 引擎实例未创建
  • -2:发送失败,uid 为空

注意

  • 在发送点对点文本消息前,必须先调用 login 完成登录。
  • 用户调用本接口发送文本信息后,会收到一次 onMessageSendResult 回调,通知消息发送结果。
  • 若文本消息发送成功,则 uid 所指定的用户会通过 onMessageReceived 回调收到该消息。

sendBinaryMessage

public abstract long com.ss.bytertc.rts.engine.RTS.sendBinaryMessage(
    String uid,
    byte[] buffer,
    MessageConfig config)

给指定的用户发送点对点二进制消息(P2P)。

传入参数

参数名类型说明
uidString消息接收用户的 ID。
bufferbyte[]发送的二进制消息内容,消息不超过 46KB。
configMessageConfig消息类型,参看 MessageConfig

返回值

  • >0:发送成功,返回这次发送消息的编号,从 1 开始递增
  • -1:发送失败,RTS 引擎实例未创建
  • -2:发送失败,uid 为空

注意

  • 在发送点对点二进制消息前,必须先调用 login 完成登录。
  • 用户调用本接口发送二进制消息后,会收到一次 onMessageSendResult 回调,通知消息发送结果。
  • 若二进制消息发送成功,则 uid 所指定的用户会通过 onBinaryMessageReceived 回调收到该条消息。

sendServerMessage

public abstract long com.ss.bytertc.rts.engine.RTS.sendServerMessage(
    String message)

客户端给应用服务器发送文本消息(P2Server)。

传入参数

参数名类型说明
messageString发送的文本消息内容,消息不超过 64KB。

返回值

  • >0:发送成功,返回这次发送消息的编号,从 1 开始递增
  • -1:发送失败,RTS 引擎实例未创建

注意

  • 在向应用服务器发送文本消息前,必须先调用 login 完成登录,随后调用 setServerParams 设置应用服务器。
  • 调用本接口后会收到一次 onServerMessageSendResult 回调,通知消息发送方是否发送成功。
  • 若文本消息发送成功,则之前调用 setServerParams 设置的应用服务器会收到该条消息。

sendServerBinaryMessage

public abstract long com.ss.bytertc.rts.engine.RTS.sendServerBinaryMessage(
    byte[] buffer)

客户端给应用服务器发送二进制消息(P2Server)。

传入参数

参数名类型说明
bufferbyte[]发送的二进制消息内容,消息不超过 46KB。

返回值

  • >0:发送成功,返回这次发送消息的编号,从 1 开始递增
  • -1:发送失败,RTS 引擎实例未创建

注意

  • 在向应用服务器发送二进制消息前,必须先调用 login 完成登录,随后调用 setServerParams 设置应用服务器。
  • 调用本接口后,会收到一次 onServerMessageSendResult 回调,通知消息发送方发送成功或失败;
  • 若二进制消息发送成功,则之前调用 setServerParams 设置的应用服务器会收到该条消息。

createRoom

public abstract RTSRoom com.ss.bytertc.rts.engine.RTS.createRoom(
    String roomId)

创建房间实例。

调用此方法仅返回一个房间实例,你仍需调用 joinRoom 才能真正地创建/加入房间。

多次调用此方法以创建多个 RTSRoom 实例。分别调用各 RTSRoom 实例中的 joinRoom 方法,同时加入多个房间。

传入参数

参数名类型说明
roomIdString标识通话房间的房间 ID。该字符串符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128}

返回值
创建的 RTSRoom 房间实例。

注意

  • 如果需要加入的房间已存在,你仍需先调用本方法来获取 RTSRoom 实例,再调用 joinRoom 加入房间。
  • 多房间模式下,创建多个房间实例需要使用不同的 roomId,否则会导致创建房间失败。

setBusinessId

public abstract int com.ss.bytertc.rts.engine.RTS.setBusinessId(
    String businessId)

设置业务标识参数。

可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。

传入参数

参数名类型说明
businessIdString业务标识。businessId 只是一个标签,颗粒度需要自定义。

返回值

  • 0: 成功
  • -2: RETURN_STATUS_PARAMETER_ERR(-2),参数非法。

注意
该方法需要在调用 joinRoom 之前调用。

setRuntimeParameters

public abstract int com.ss.bytertc.rts.engine.RTS.setRuntimeParameters(
    JSONObject params)

设置运行时的参数

传入参数

参数名类型说明
paramsJSONObjectjson 序列化之后的字符串

返回值

  • 0: 调用成功。
  • < 0 : 调用失败。查看 ReturnStatus 获得更多错误说明

setCellularEnhancement

public abstract int com.ss.bytertc.rts.engine.RTS.setCellularEnhancement(
    boolean enhance)

启用蜂窝网络辅助增强,改善通话质量。

传入参数

参数名类型说明
enhanceboolean是否开启。默认不开启。

返回值
方法调用结果:

  • 0: 成功。
  • -1:失败,内部错误。

setLocalProxy

public abstract int com.ss.bytertc.rts.engine.RTS.setLocalProxy(
    List<LocalProxyConfiguration> configurations)

设置本地代理。

传入参数

参数名类型说明
configurationsList本地代理配置参数。参看 LocalProxyConfiguration
你可以根据自己的需要选择同时设置 Http 隧道 和 Socks5 两类代理,或者单独设置其中一类代理。如果你同时设置了 Http 隧道 和 Socks5 两类代理,此时,媒体和信令采用 Socks5 代理, Http 请求采用 Http 隧道代理;如果只设置 Http 隧道 或 Socks5 一类代理,媒体、信令和 Http 请求均采用已设置的代理。
调用此接口设置本地代理后,若想清空当前已有的代理设置,可再次调用此接口,选择不设置任何代理即可清空。

注意

  • 该方法需要在进房前调用。
  • 调用该方法设置本地代理后,SDK 会触发 onLocalProxyStateChanged ,返回代理连接的状态。
RTSRoom
public abstract class com.ss.bytertc.rts.engine.RTSRoom

RTS room API class

成员函数

返回名称
abstract voiddestroy
abstract intjoinRoom
abstract intsetRTSRoomEventHandler
abstract intleaveRoom
abstract longsendRoomMessage
abstract longsendRoomBinaryMessage

函数说明

destroy

public abstract void com.ss.bytertc.rts.engine.RTSRoom.destroy()

退出并销毁调用 createRoom 所创建的房间实例。

joinRoom

public abstract int com.ss.bytertc.rts.engine.RTSRoom.joinRoom()

加入房间。

调用 createRoom 创建房间后,可调用该方法进房,在房间内收发广播消息。

返回值
方法调用结果:

  • 0:成功。
  • -2:失败,已经在房间内。
  • -3:Room 为空。

注意

  • 你需在调用 login 登陆 RTS 服务器后再加入房间。
  • 本地用户调用此方法加入房间成功后,会收到 onRoomStateChanged 回调通知。
  • 用户加入房间成功后,在本地网络状况不佳的情况下,SDK 可能会与服务器失去连接,此时 SDK 将会自动重连。重连成功后,本地会收到 onRoomStateChanged 回调通知。

setRTSRoomEventHandler

public abstract int com.ss.bytertc.rts.engine.RTSRoom.setRTSRoomEventHandler(
    IRTSRoomEventHandler rtsRoomEventHandler)

通过设置房间事件 handler,监听此对象对应的回调事件。

传入参数

参数名类型说明
rtsRoomEventHandlerIRTSRoomEventHandler参看 IRTSRoomEventHandler

返回值

  • 0: 调用成功。
  • < 0 : 调用失败。查看 ReturnStatus 获得更多错误说明

leaveRoom

public abstract int com.ss.bytertc.rts.engine.RTSRoom.leaveRoom()

离开房间。

用户调用此方法离开房间,结束实时消息通信,释放所有通信相关的资源。

此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onLeaveRoom 回调通知。

返回值

  • 0: 调用成功。
  • < 0 : 调用失败。查看 ReturnStatus 获得更多错误说明

注意
如果调用此方法后立即销毁引擎,SDK 将无法触发 onLeaveRoom 回调。

sendRoomMessage

public abstract long com.ss.bytertc.rts.engine.RTSRoom.sendRoomMessage(
    String messageStr)

给房间内的所有其他用户群发文本消息。

传入参数

参数名类型说明
messageStrString发送的文本消息内容,消息不超过 64KB。

注意

sendRoomBinaryMessage

public abstract long com.ss.bytertc.rts.engine.RTSRoom.sendRoomBinaryMessage(
    byte[] buffer)

给房间内的所有其他用户群发二进制消息。

传入参数

参数名类型说明
bufferbyte[]发送的二进制消息内容,消息不超过 46KB。

注意