public interface GameRTC.IGameRTCService
提供即时通讯的能力(参考某5v5moba手游的队内语音交流);
Defined in : IGameRTCService.cs
| 类型 | 名称 |
|---|---|
| event | OnJoinRoomResultEvent |
| event | OnLeaveRoomEvent |
| event | OnUserJoinedEvent |
| event | OnUserLeaveEvent |
| event | OnMicrophoneEnabledEvent |
| event | OnAudioSendEnabledEvent |
| event | OnSpeakerphoneEnabledEvent |
| event | OnAudioVolumeIndicationEvent |
| event | OnConnectionStateChangedEvent |
| event | OnNetworkQualityEvent |
| event | OnEngineWarningEvent |
| event | OnRoomWarningEvent |
| event | OnRoomErrorEvent |
| 返回 | 名称 |
|---|---|
| void | Initialize |
| void | Release |
| string | GetSdkVersion |
| int | JoinRoom |
| int | LeaveRoom |
| int | UpdateToken |
| int | UpdateReceiveRange |
| int | UpdatePosition |
| int | EnableMicrophone |
| int | EnableAudioSend |
| int | EnableSpeakerphone |
| int | EnableAudioReceive |
| int | SetRecordingVolume |
| int | SetPlaybackVolume |
| int | SetRemoteAudioPlaybackVolume |
| int | SetAudioScenario |
| int | GetRecordingDeviceCount |
| int | SetRecordingDevice |
| int | GetCurrentRecordingDevice |
| int | GetAllRecordingDevices |
| int | GetPlaybackDeviceCount |
| int | SetPlaybackDevice |
| int | GetCurrentPlaybackDevice |
| int | GetAllPlaybackDevices |
event GameRTC.IGameRTCService.OnJoinRoomResultEventHandler
进房成功回调
event GameRTC.IGameRTCService.OnLeaveRoomEventHandler
退房成功回调
event GameRTC.IGameRTCService.OnUserJoinedEventHandler
远端用户加入房间回调
event GameRTC.IGameRTCService.OnUserLeaveEventHandler
远端用户离开房间回调
event GameRTC.IGameRTCService.OnMicrophoneEnabledEventHandler
远端用户开关麦克风回调
event GameRTC.IGameRTCService.OnAudioSendEnabledEventHandler
远端用户启停音频数据发送回调
event GameRTC.IGameRTCService.OnSpeakerphoneEnabledEventHandler
远端用户启停音频数据接收回调
event GameRTC.IGameRTCService.OnAudioVolumeIndicationEventHandler
音量统计信息回调
event GameRTC.IGameRTCService.OnConnectionStateChangedEventHandler
网络状态改变的回调
event GameRTC.IGameRTCService.OnNetworkQualityEventHandler
网络质量回调
event GameRTC.IGameRTCService.OnEngineWarningEventHandler
引擎警告回调
event GameRTC.IGameRTCService.OnRoomWarningEventHandler
房间警告回调
event GameRTC.IGameRTCService.OnRoomErrorEventHandler
房间错误回调
void GameRTC.IGameRTCService.Initialize(
GameRTCEngineParams initParams)
创建 GameRTCEngine 实例。
GameRTCEngine 实例成功创建后,你才可以使用 SDK 提供的其他能力。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| initParams | GameRTCEngineParams | 引擎初始化参数,参看 GameRTCEngineParams。 |
void GameRTC.IGameRTCService.Release();
销毁由 Initialize 所创建引擎实例,并释放所有相关资源。
注意
string GameRTC.IGameRTCService.GetSdkVersion();
获取 SDK 当前的版本号。
返回值 SDK 当前的版本号。
int GameRTC.IGameRTCService.JoinRoom(
string roomID,
string userID,
string token,
GameRTCRoomConfig roomConfig)
加入实时语音房间。
在使用实时语音的通话功能时,必须先加入实时语音房间。
调用该方法后,会收到 OnJoinRoomResultEventHandler 回调通知。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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。 |
| roomConfig | GameRTCRoomConfig | 房间配置参数,参看 GameRTCRoomConfig。 |
返回值 方法调用结果
注意
int GameRTC.IGameRTCService.LeaveRoom(
string roomID)
离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
调用 JoinRoom 方法加入房间后,在通话结束时必须调用此方法,并收到 OnLeaveRoomEventHandler 回调确认结束通话,否则无法开始下一次通话。
无论当前是否在房间中,都可以调用此方法。重复调用此方法不会有负面影响。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomID | string | 房间 ID,用户调用此接口离开的房间的房间 ID。 房间 ID 为长度在 128 字节内的非空字符串,支持以下字符集范围: 1. 26 个大写字母 A ~ Z 。 2. 26 个小写字母 a ~ z 。 3. 10 个数字 0 ~ 9 。 4. 下划线 "_",at 符 "@",减号 "-"。 |
返回值 方法调用结果
int GameRTC.IGameRTCService.UpdateToken(
string roomID,
string token)
更新进房 token。
在进房时如果收到错误码为 kJoinRoomInvalidToken 的 OnJoinRoomResultEventHandler 回调,表示 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。 |
返回值 方法调用结果
int GameRTC.IGameRTCService.UpdateReceiveRange(
string roomID,
GameRTCReceiveRange range)
在世界房间中,使用范围语音功能时,设定语音的接收范围和衰减信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomID | string | 房间 ID |
| range | GameRTCReceiveRange | 语音的收听范围,参看 GameRTCReceiveRange。 |
返回值 方法调用结果
注意 你应在加入房间时,通过参数设置,加入世界房间,并开启范围语音: - 关于世界房间,参看 RoomType 中的 World。
int GameRTC.IGameRTCService.UpdatePosition(
string roomID,
GameRTCPositionInfo pos)
使用范围语音功能时,设置玩家的坐标。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomID | string | 房间 ID |
| pos | GameRTCPositionInfo | 玩家坐标值,参看 GameRTCPositionInfo。 |
返回值 方法调用结果
int GameRTC.IGameRTCService.EnableMicrophone(
string roomID,
bool enable)
控制本地音频采集和发布状态。
改变该状态后,房间内其他用户会收到 OnMicrophoneEnabledEventHandler 回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomID | string | 房间 ID |
| enable | bool | 本地音频采集和发布状态: • true:开始采集本地音频,并向房间内发布。 • false:停止采集本地音频,并停止发布。 |
返回值 方法调用结果
int GameRTC.IGameRTCService.EnableAudioSend(
string roomID,
bool enable)
控制本地语音的发送状态:发送/不发送。
使用此方法后,房间中的其他用户会收到 OnAudioSendEnabledEventHandler 回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomID | string | 房间 ID |
| enable | bool | 发送状态,标识是否发送语音: • true: 发布语音 • false: 不发布语音 |
返回值 方法调用结果
注意
int GameRTC.IGameRTCService.EnableSpeakerphone(
string roomID,
bool enable)
设置对来自远端的语音的接收状态。
使用此方法后,房间中的其他用户会收到 OnSpeakerphoneEnabledEventHandler 回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomID | string | 房间 ID |
| enable | bool | 接收状态: • true: 接收 • false: 不接收 |
返回值 方法调用结果
注意 本方法只控制本地是否接收远端音频流,并不影响本地音频播放设备的工作状态。
int GameRTC.IGameRTCService.EnableAudioReceive(
string roomID,
string userID,
bool enable)
设置对来自指定远端用户的语音的接收状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomID | string | 房间 ID |
| userID | string | 指定远端用户的 ID |
| enable | bool | 接收状态: • true: 接收 • false: 不接收 |
返回值 方法调用结果
注意 本方法只控制本地是否接收远端音频流,并不影响本地音频播放设备的工作状态。
int GameRTC.IGameRTCService.SetRecordingVolume(
int volume)
调节音频采集音量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音频采集音量,调节范围: [0,400],单位: % • 0: 静音 • 100: 原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护,防止音量放大可能导致的爆音等问题)。 |
返回值 方法调用结果
注意 为保证更好的通话质量,建议将 volume 值设为 [0,100]。
int GameRTC.IGameRTCService.SetPlaybackVolume(
int volume)
调节本地播放的所有远端用户混音后的音量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音频播放音量,调节范围: [0,400],单位: % • 0: 静音 • 100: 原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护,防止音量放大可能导致的爆音等问题)。 |
返回值 方法调用结果
注意 为保证更好的通话质量,建议将 volume 值设为 [0,100]。
int GameRTC.IGameRTCService.SetRemoteAudioPlaybackVolume(
string roomID,
string userID,
int volume)
调节来自指定远端用户的音频播放音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomID | string | 房间 ID |
| userID | string | 指定远端用户的 ID |
| volume | int | 播放音量,调节范围: [0,400],单位: % • 0: 静音 • 100: 原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护,防止音量放大可能导致的爆音等问题)。 |
返回值 方法调用结果
注意 开启范围语音后,此接口不生效。
int GameRTC.IGameRTCService.SetAudioScenario(
AudioScenarioType scenario)
设置音频场景类型。
你可以根据你的应用所在场景,选择合适的音频场景类型。
选择音频场景后,RTC 会自动根据客户端音频路由和发布订阅状态,适用通话音量/媒体音量。
在进房前和进房后设置均可生效。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| scenario | AudioScenarioType | 音频场景类型, 参见 AudioScenarioType |
注意
int GameRTC.IGameRTCService.GetRecordingDeviceCount();
获取音频采集设备的数量
返回值
注意 该接口仅适用于 PC 平台,不适用于移动平台。
int GameRTC.IGameRTCService.SetRecordingDevice(
string deviceID)
指定音频采集设备
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| deviceID | string | 设备 ID |
返回值 方法调用结果
注意 该接口仅适用于 PC 平台,不适用于移动平台。
int GameRTC.IGameRTCService.GetCurrentRecordingDevice(
ref string deviceID)
获取当前音频采集设备
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| deviceID | ref string | 设备 ID |
返回值 方法调用结果
注意 该接口仅适用于 PC 平台,不适用于移动平台。
int GameRTC.IGameRTCService.GetAllRecordingDevices(
ref List<AudioDeviceInfo> audioDeviceList)
获取全部音频采集设备信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioDeviceList | ref List |
音频设备信息列表 |
返回值
注意 该接口仅适用于 PC 平台,不适用于移动平台。
int GameRTC.IGameRTCService.GetPlaybackDeviceCount();
获取音频播放设备的数量
返回值
注意 该接口仅适用于 PC 平台,不适用于移动平台。
int GameRTC.IGameRTCService.SetPlaybackDevice(
string deviceID)
指定音频播放设备
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| deviceID | string | 设备ID |
返回值 方法调用结果
注意 该接口仅适用于 PC 平台,不适用于移动平台。
int GameRTC.IGameRTCService.GetCurrentPlaybackDevice(
ref string deviceID)
获取当前音频播放设备
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| deviceID | ref string | 设备ID |
返回值 方法调用结果
注意 该接口仅适用于 PC 平台,不适用于移动平台。
int GameRTC.IGameRTCService.GetAllPlaybackDevices(
ref List<AudioDeviceInfo> audioDeviceList)
获取全部音频播放设备信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioDeviceList | ref List |
音频设备信息列表 |
返回值
注意 该接口仅适用于 PC 平台,不适用于移动平台。