GameRTCEngineKit

@interface GameRTCEngineKit : NSObject

成员变量

类型 名称
id delegate

静态函数

返回 名称
instancetype sharedEngineWithConfig:delegate:parameters:
void destroy
NSString* getSdkVersion

成员函数

返回 名称
int joinRoom:uid:token:config:
int leaveRoom:
int updateToken:room:
int updateReceiveRange:room:
int updatePosition:room:
int updateOrientation:room:
int enableMicrophone:room:
int enableAudioSend:room:
int enableSpeakerphone:room:
int enableAudioReceive:room:uid:
int setRecordingVolume:
int setPlaybackVolume:
int setRemoteAudioPlaybackVolume:room:uid:
void setAudioScenario:

变量说明

delegate

@property (nonatomic, weak) id<GameRTCEngineDelegate> delegate;

函数说明

sharedEngineWithConfig:delegate:parameters:

+ (instancetype)sharedEngineWithConfig:(GameRTCEngineConfig *)config delegate:(id<GameRTCEngineDelegate>)delegate parameters:(NSString *)params;

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

传入参数

参数名 类型 说明
config GameRTCEngineConfig* 引擎相关配置信息,参看 GameRTCEngineConfig。
delegate id SDK 回调给应用层的 delegate。
params NSString* 预留字段,json 字符串,通常填空字符串即可。使用时,联系技术支持人员。

返回值 GameRTCEngine 实例。

注意 该方法在第一次调用时初始化一个 RTCEngine 单例,除非调用 destroy 方法,否则后续的所有调用均返回同一个内部实例。

destroy

+ (void)destroy;

销毁引擎
销毁引擎实例,并释放所有相关资源

注意

getSdkVersion

+ (NSString *)getSdkVersion;

获取 SDK 当前的版本号。

返回值 SDK 当前的版本号。

joinRoom:uid:token:config:

- (int)joinRoom:(NSString *)roomId uid:(NSString *)uid token:(NSString *)token config:(GameRTCRoomConfig *)config;

加入实时语音房间。
在使用实时语音的通话功能时,必须先加入实时语音房间。
调用该方法后,会收到 rtcEngine:onJoinRoomResult:uid:errorCode:isRejoined:elapsed: 回调。

传入参数

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

返回值 方法调用结果

注意

leaveRoom:

- (int)leaveRoom:(NSString *)roomId;

离开房间
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
调用 joinRoom:uid:token:config: 方法加入房间后,在通话结束时必须调用此方法结束通话,否则无法开始下一次通话。无论当前是否在房间中,都可以调用此方法。重复调用此方法不会有负面影响。
此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本端会收到 rtcEngine:onLeaveRoom: 回调通知。

传入参数

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

返回值 方法调用结果

updateToken:room:

- (int)updateToken:(NSString *)token room:(NSString *)roomId;

更新进房 token。 在进房时如果收到错误码为 GameRTCJoinRoomErrorCodeJoinRoomInvalidToken 的 rtcEngine:onJoinRoomResult:uid:errorCode:isRejoined:elapsed: 回调,表示 token 过期导致进房失败。 此时,你应调用此接口,以新 token 进房。

传入参数

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

返回值 方法调用结果

updateReceiveRange:room:

- (int)updateReceiveRange:(GameRTCReceiveRange *)range room:(NSString *)roomId;

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

传入参数

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

返回值 方法调用结果

注意 你应在加入房间时,通过参数设置,加入世界房间,并开启范围语音: - 关于世界房间,参看 GameRTCRoomType 的 GameRTCRoomTypeWorld 参数。

updatePosition:room:

- (int)updatePosition:(GameRTCPositionInfo *)position room:(NSString *)roomId;

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

传入参数

参数名 类型 说明
position GameRTCPositionInfo* 玩家坐标值,参看 GameRTCPositionInfo
roomId NSString* 房间 ID

返回值 方法调用结果

updateOrientation:room:

- (int)updateOrientation:(GameRTCOrientationInfo *)orientation room:(NSString *)roomId;

使用空间语音功能时,设置玩家的方位。

传入参数

参数名 类型 说明
orientation GameRTCOrientationInfo* 玩家方位值,参看 GameRTCOrientationInfo
roomId NSString* 房间 ID

返回值 方法调用结果

enableMicrophone:room:

- (int)enableMicrophone:(BOOL)enable room:(NSString *)roomId;

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

传入参数

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

返回值 方法调用结果

enableAudioSend:room:

- (int)enableAudioSend:(BOOL)enable room:(NSString *)roomId;

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

传入参数

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

返回值 方法调用结果

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

enableSpeakerphone:room:

- (int)enableSpeakerphone:(BOOL)enable room:(NSString *)roomId;

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

传入参数

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

返回值 方法调用结果:

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

enableAudioReceive:room:uid:

- (int)enableAudioReceive:(BOOL)enable room:(NSString *)roomId uid:(NSString*)uid;

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

传入参数

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

返回值 方法调用结果

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

setRecordingVolume:

- (int)setRecordingVolume:(int)volume;

调节音频采集音量。

传入参数

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

返回值 方法调用结果

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

setPlaybackVolume:

- (int)setPlaybackVolume:(int)volume;

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

传入参数

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

返回值 方法调用结果

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

setRemoteAudioPlaybackVolume:room:uid:

- (int)setRemoteAudioPlaybackVolume:(int)volume room:(NSString *)roomId uid:(NSString *)uid;

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

传入参数

参数名 类型 说明
volume int 播放音量,调节范围:[0,400]
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护,防止音量放大可能导致的爆音等问题)。
roomId NSString* 房间 ID
uid NSString* 指定远端用户的 ID

返回值 方法调用结果

setAudioScenario:

- (void)setAudioScenario:(GameRTCAudioScenarioType)audioScenario;

设置音频场景类型。
你可以根据你的应用所在场景,选择合适的音频场景类型。
选择音频场景后,RTC 会自动根据客户端音频路由和发布订阅状态,适用通话音量/媒体音量。
本方法在进房前和进房后设置均可生效。

传入参数

参数名 类型 说明
audioScenario GameRTCAudioScenarioType 音频场景类型,适用通话音量/媒体音量
详见 GameRTCAudioScenarioType

注意