GameRTCEngine

public abstract class com.ss.video.rtc.engine.GameRTCEngine

GameRTCEngine 类

静态函数

返回 名称
static synchronized GameRTCEngine create
static synchronized void destroy
static String getSdkVersion
static void setRtcNativeLibraryLoader

成员函数

返回 名称
abstract int joinRoom
abstract int leaveRoom
abstract int updateToken
abstract int updateReceiveRange
abstract int updatePosition
abstract int enableMicrophone
abstract int enableAudioSend
abstract int enableSpeakerphone
abstract int enableAudioReceive
abstract int setRecordingVolume
abstract int setPlaybackVolume
abstract int setRemoteAudioPlaybackVolume
abstract boolean setExternalAudioDevice
abstract boolean pushExternalAudioFrame
abstract boolean pullExternalAudioFrame

函数说明

create

public static synchronized GameRTCEngine com.ss.video.rtc.engine.GameRTCEngine.create(
    Context context,
    GameRTCEngineConfig config,
    IGameRTCEventHandler eventHandler,
    String params)

创建 GameRTCEngine 实例。
创建 GameRTCEngine 实例后,你才可以使用 SDK 提供的其他能力。

传入参数

参数名 类型 说明
context Context Android Context
config GameRTCEngineConfig 引擎配置参数,参看 GameRTCEngineConfig
eventHandler IGameRTCEventHandler SDK 回调给应用层的 Callback 对象,参看 IGameRTCEventHandler 。
params String 预留字段,json 字符串,通常填空字符串即可。使用时,联系技术支持人员。

返回值

注意

destroy

public static synchronized void com.ss.video.rtc.engine.GameRTCEngine.destroy()

销毁引擎
销毁由 GameRTCEngine.create 所创建引擎实例,并释放所有相关资源

注意

getSdkVersion

public static String com.ss.video.rtc.engine.GameRTCEngine.getSdkVersion()

获取 SDK 当前的版本号。

返回值 SDK 当前的版本号。

setRtcNativeLibraryLoader

public static void com.ss.video.rtc.engine.GameRTCEngine.setRtcNativeLibraryLoader(
    RtcNativeLibraryLoader rtcNativeLibraryLoader)

设置 native library 加载器,需要在其他所有静态方法调用之前被调用。

传入参数

参数名 类型 说明
rtcNativeLibraryLoader RtcNativeLibraryLoader 本地动态连接库加载器,参看 rtcNativeLibraryLoader

joinRoom

public abstract int com.ss.video.rtc.engine.GameRTCEngine.joinRoom(
    String roomId,
    String userId,
    String token,
    GameRTCRoomConfig config)

加入实时语音房间。
在使用实时语音的通话功能时,必须先加入实时语音房间

传入参数

参数名 类型 说明
roomId String 房间 ID ,用户调用此接口加入的房间的房间 ID。
房间 ID 为最大长度为 128 字节的非空字符串,支持的字符集范围为:
1. 26 个大写字母 A ~ Z 。
2. 26 个小写字母 a ~ z 。
3. 10 个数字 0 ~ 9 。
4. 下划线"_", at符"@", 减号"-"。
userId String 用户ID ,用户调用此接口加入的房间时使用的用户ID 。
用户ID 为最大长度为128字节的非空字符串,支持的字符集范围为:
1. 26个大写字母 A ~ Z 。
2. 26个小写字母 a ~ z 。
3. 10个数字 0 ~ 9 。
4. 下划线"_", at符"@", 减号"-"。
token String 动态密钥,用于对登录用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token ,正式上线需要使用密钥 SDK 在您的服务端生成并下发 Token
config GameRTCRoomConfig 房间配置参数,参看 GameRTCRoomConfig

返回值 方法调用结果

注意

leaveRoom

public abstract int com.ss.video.rtc.engine.GameRTCEngine.leaveRoom(
    String roomId)

离开房间
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
调用 joinRoom 方法加入房间后,在通话结束时必须调用此方法,并收到 onLeaveRoom 回调确认结束通话,否则无法开始下一次通话。
无论当前是否在房间中,都可以调用此方法。重复调用此方法不会有负面影响。

传入参数

参数名 类型 说明
roomId String 房间 ID ,用户调用此接口加入的房间的房间 ID
房间 ID 为最大长度为 128 字节的非空字符串,支持的字符集范围为:
1. 26 个大写字母 A ~ Z 。
2. 26 个小写字母 a ~ z 。
3. 10 个数字 0 ~ 9 。
4. 下划线"_", at符"@", 减号"-"。

返回值 方法调用结果

updateToken

public abstract int com.ss.video.rtc.engine.GameRTCEngine.updateToken(
    String roomId,
    String token)

更新进房 token。
在进房时如果收到错误码为 ROOM_ERROR_INVALID_TOKEN 的 onRoomError 回调,表示 token 过期导致进房失败。 此时,你应调用此接口,以新 token 进房。

传入参数

参数名 类型 说明
roomId String 房间 ID ,用户调用此接口加入的房间的房间 ID
房间 ID 为最大长度为 128 字节的非空字符串,支持的字符集范围为:
1. 26 个大写字母 A ~ Z 。
2. 26 个小写字母 a ~ z 。
3. 10 个数字 0 ~ 9 。
4. 下划线"_", at符"@", 减号"-"。
token String 动态密钥,用于对登录用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token ,正式上线需要使用密钥 SDK 在您的服务端生成并下发 Token

返回值 方法调用结果

updateReceiveRange

public abstract int com.ss.video.rtc.engine.GameRTCEngine.updateReceiveRange(
    String roomId,
    GameRTCReceiveRange range)

在世界房间中,使用范围语音功能时,设定语音的接收范围和衰减信息。

传入参数

参数名 类型 说明
roomId String 房间 ID
range GameRTCReceiveRange 语音的收听范围,参看 GameRTCReceiveRange

返回值 方法调用结果

注意 你应在加入房间时,通过参数设置,加入世界房间,并开启范围语音:

  • 关于世界房间,参看 RoomType 中的参数 RTC_ROOM_WORLD。
  • 关于范围语音,参看 [enableRangeAudio](keytype.html#enablerangeaudio)。
  • updatePosition

    public abstract int com.ss.video.rtc.engine.GameRTCEngine.updatePosition(
        String roomId,
        GameRTCPositionInfo info)
    

    使用范围语音功能时,设置玩家的坐标。

    传入参数

    参数名 类型 说明
    roomId String 房间 ID
    info GameRTCPositionInfo 玩家坐标值,参看 GameRTCPositionInfo

    返回值 方法调用结果

    enableMicrophone

    public abstract int com.ss.video.rtc.engine.GameRTCEngine.enableMicrophone(
        String roomId,
        boolean enable)
    

    控制本地音频采集和发布状态。
    改变该状态后,房间内其他用户会收到 onMicrophoneEnabled 回调

    传入参数

    参数名 类型 说明
    roomId String 房间 ID。
    enable boolean 本地音频采集和发布状态:
    • true:开始采集本地音频,并向房间内发布。
    • false: 停止采集本地音频,并停止发布。

    返回值 方法调用结果

    enableAudioSend

    public abstract int com.ss.video.rtc.engine.GameRTCEngine.enableAudioSend(
        String roomId,
        boolean enable)
    

    控制本地语音的发送状态:发送/不发送
    使用此方法后,房间中的其他用户会收到回调 onAudioSendEnabled。

    传入参数

    参数名 类型 说明
    roomId String 房间 ID
    enable boolean 发送状态,标识是否发送语音:
    • true:发布语音
    • false: 不发布语音

    返回值 方法调用结果

    注意 初次调用本方法发送本地语音时,会开启本地音频采集功能。之后再次调用本方法时,仅控制本地音频流的发送状态,不会影响本地音频采集状态。

    enableSpeakerphone

    public abstract int com.ss.video.rtc.engine.GameRTCEngine.enableSpeakerphone(
        String roomId,
        boolean enable)
    

    设置对来自远端的语音的接收状态。
    使用此方法后,房间中的其他用户会收到回调 onSpeakerphoneEnabled。

    传入参数

    参数名 类型 说明
    roomId String 房间 ID
    enable boolean 接收状态:
    • true:接收
    • false: 不接收

    返回值 方法调用结果:

    注意 本方法只控制本地是否接收远端音频流,并不影响本地音频播放设备的工作状态。

    enableAudioReceive

    public abstract int com.ss.video.rtc.engine.GameRTCEngine.enableAudioReceive(
        String roomId,
        String userId,
        boolean enable)
    

    设置对来自指定远端用户的语音的接收状态。

    传入参数

    参数名 类型 说明
    roomId String 房间 ID
    userId String 指定远端用户的 ID
    enable boolean 接收状态:
    • true:接收
    • false: 不接收

    返回值 方法调用结果

    注意 本方法只控制本地是否接收远端音频流,并不影响本地音频播放设备的工作状态。

    setRecordingVolume

    public abstract int com.ss.video.rtc.engine.GameRTCEngine.setRecordingVolume(
        int volume)
    

    调节音频采集音量。

    传入参数

    参数名 类型 说明
    volume int 音频采集音量,调节范围:[0,400]
    • 0:静音
    • 100:原始音量
    • 400: 最大可为原始音量的 4 倍(自带溢出保护)

    返回值 方法调用结果

    注意 为保证更好的通话质量,建议将 volume 值设为 [0,100]。

    setPlaybackVolume

    public abstract int com.ss.video.rtc.engine.GameRTCEngine.setPlaybackVolume(
        int volume)
    

    调节本地播放的所有远端用户混音后的音量。

    传入参数

    参数名 类型 说明
    volume int 播放音量,调节范围:[0,400]
    • 0:静音
    • 100:原始音量
    • 400: 最大可为原始音量的 4 倍(自带溢出保护)

    返回值 方法调用结果

    注意 为保证更好的通话质量,建议将 volume 值设为 [0,100]。

    setRemoteAudioPlaybackVolume

    public abstract int com.ss.video.rtc.engine.GameRTCEngine.setRemoteAudioPlaybackVolume(
        String roomId,
        String userId,
        int volume)
    

    调节来自指定远端用户的音频播放音量,默认为 100。

    传入参数

    参数名 类型 说明
    roomId String 房间 ID
    userId String 指定远端用户的 ID
    volume int 播放音量,调节范围:[0,400]
    • 0: 静音
    • 100: 原始音量
    • 400: 最大可为原始音量的 4 倍(自带溢出保护)

    返回值 方法调用结果

    注意 开启范围语音后,此接口不生效。

    setExternalAudioDevice

    public abstract boolean com.ss.video.rtc.engine.GameRTCEngine.setExternalAudioDevice(
        boolean enable,
        int sampleRate,
        int recordChannelNum,
        int playoutChannelNum)
    

    设置是否启用外部音频采集渲染

    传入参数

    参数名 类型 说明
    enable boolean • true: 启用自定义音频采集渲染
    • false: 不启用自定义音频采集渲染
    sampleRate int 音频采样率(单位 Hz),可以设置的值有 8000,16000,32000,44100,48000
    recordChannelNum int 外部音频采集通道数,支持单声道(1)和双声道(2)
    playoutChannelNum int 外部音频渲染通道数,支持单声道(1)和双声道(2)

    返回值 设置是否成功

    注意

    pushExternalAudioFrame

    public abstract boolean com.ss.video.rtc.engine.GameRTCEngine.pushExternalAudioFrame(
        byte[] audioFrame,
        int frameNum)
    

    推送音频数据。
    推送的音频格式是 PCM。推送间隔是 10ms。音频采样格式是 S16。

    传入参数

    参数名 类型 说明
    audioFrame byte[] PCM 数据。内存大小应该为 frameNum * 音频采集通道数 * 2。
    其中,音频采集通道数在 setExternalAudioDevice 中设置。
    frameNum int 采样点数量。
    采样点数量应为 采样率(每秒采样数)/100。采样率在 setExternalAudioDevice 中设置。

    返回值 方法调用结果

    注意

    pullExternalAudioFrame

    public abstract boolean com.ss.video.rtc.engine.GameRTCEngine.pullExternalAudioFrame(
        byte[] audioFrame,
        int frameNum)
    

    拉取音频数据。
    拉取的音频格式是 PCM。拉取间隔是 10ms。音频采样格式是 S16。

    传入参数

    参数名 类型 说明
    audioFrame byte[] PCM 数据。内存大小应该为 frameNum * 音频采集通道数 * 2。
    其中,音频采集通道数在 setExternalAudioDevice 中设置。
    frameNum int 采样点数量。
    采样点数量应为 采样率(每秒采样数)/100。采样率在 setExternalAudioDevice 中设置。

    返回值 方法调用结果

    注意