@interface GameRTCEngineKit : NSObject
| 类型 | 名称 |
|---|---|
| id |
delegate |
| 返回 | 名称 |
|---|---|
| instancetype | sharedEngineWithConfig:delegate:parameters: |
| void | destroy |
| NSString* | getSdkVersion |
@property (nonatomic, weak) id<GameRTCEngineDelegate> delegate;
+ (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 方法,否则后续的所有调用均返回同一个内部实例。
+ (void)destroy;
销毁引擎
销毁引擎实例,并释放所有相关资源
注意
+ (NSString *)getSdkVersion;
获取 SDK 当前的版本号。
返回值 SDK 当前的版本号。
- (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 |
返回值 方法调用结果
注意
- (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 符 "@", 减号 "-"。 |
返回值 方法调用结果
- (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 |
返回值 方法调用结果
- (int)updateReceiveRange:(GameRTCReceiveRange *)range room:(NSString *)roomId;
在世界房间中,使用范围语音功能时,设定语音的接收范围和衰减信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| range | GameRTCReceiveRange* | 语音的收听范围,参看 GameRTCReceiveRange |
| roomId | NSString* | 房间 ID |
返回值 方法调用结果
注意 你应在加入房间时,通过参数设置,加入世界房间,并开启范围语音: - 关于世界房间,参看 GameRTCRoomType 的 GameRTCRoomTypeWorld 参数。
- (int)updatePosition:(GameRTCPositionInfo *)position room:(NSString *)roomId;
使用范围、空间语音功能时,设置玩家的坐标。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| position | GameRTCPositionInfo* | 玩家坐标值,参看 GameRTCPositionInfo |
| roomId | NSString* | 房间 ID |
返回值 方法调用结果
- (int)updateOrientation:(GameRTCOrientationInfo *)orientation room:(NSString *)roomId;
使用空间语音功能时,设置玩家的方位。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| orientation | GameRTCOrientationInfo* | 玩家方位值,参看 GameRTCOrientationInfo |
| roomId | NSString* | 房间 ID |
返回值 方法调用结果
- (int)enableMicrophone:(BOOL)enable room:(NSString *)roomId;
控制本地音频采集和发布状态。
改变该状态后,房间内其他用户会收到 rtcEngine:onMicrophoneEnabled:room:uid: 回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | BOOL | 本地音频采集和发布状态: • true:开始采集本地音频,并向房间内发布。 • false: 停止采集本地音频,并停止发布。 |
| roomId | NSString* | 房间 ID。 |
返回值 方法调用结果
- (int)enableAudioSend:(BOOL)enable room:(NSString *)roomId;
控制本地语音的发送状态:发送/不发送
使用此方法后,房间中的其他用户会收到回调 rtcEngine:onAudioSendEnabled:room:uid:。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | BOOL | 发送状态,标识是否发送语音: • true:发布语音 • false: 不发布语音 |
| roomId | NSString* | 房间 ID |
返回值 方法调用结果
注意 初次调用本方法发送本地语音时,会开启本地音频采集功能。之后再次调用本方法时,仅控制本地音频流的发送状态,不会影响本地音频采集状态。
- (int)enableSpeakerphone:(BOOL)enable room:(NSString *)roomId;
设置对来自远端的语音的接收状态。 使用此方法后,房间中的其他用户会收到回调 rtcEngine:onSpeakerphoneEnabled:room:uid:。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | BOOL | 接收状态: • true:接收 • false: 不接收 |
| roomId | NSString* | 房间 ID |
返回值 方法调用结果:
注意 本方法只控制本地是否接收远端音频流,并不影响本地音频播放设备的工作状态。
- (int)enableAudioReceive:(BOOL)enable room:(NSString *)roomId uid:(NSString*)uid;
设置对来自指定远端用户的语音的接收状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | BOOL | 接收状态: • true:接收 • false: 不接收 |
| roomId | NSString* | 房间 ID |
| uid | NSString* | 指定远端用户的 ID |
返回值 方法调用结果
注意 本方法只控制本地是否接收远端音频流,并不影响本地音频播放设备的工作状态。
- (int)setRecordingVolume:(int)volume;
调节音频采集音量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音频采集音量,调节范围:[0,400] • 0:静音 • 100:原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护,防止音量放大可能导致的爆音等问题)。 |
返回值 方法调用结果
注意 为保证更好的通话质量,建议将 volume 值设为 [0,100]。
- (int)setPlaybackVolume:(int)volume;
调节本地播放的所有远端用户混音后的音量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 播放音量,调节范围:[0,400] • 0:静音 • 100:原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护,防止音量放大可能导致的爆音等问题)。 |
返回值 方法调用结果
注意 为保证更好的通话质量,建议将 volume 值设为 [0,100]。
- (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 |
返回值 方法调用结果
- (void)setAudioScenario:(GameRTCAudioScenarioType)audioScenario;
设置音频场景类型。
你可以根据你的应用所在场景,选择合适的音频场景类型。
选择音频场景后,RTC 会自动根据客户端音频路由和发布订阅状态,适用通话音量/媒体音量。
本方法在进房前和进房后设置均可生效。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioScenario | GameRTCAudioScenarioType | 音频场景类型,适用通话音量/媒体音量 详见 GameRTCAudioScenarioType |
注意