IGameRoom class

@detail api @brief IGameRoom 类,提供游戏房间相关接口。

Inheritance

Constructors

IGameRoom({id<ByteRTCGameRoomDelegate>? delegate})

Properties

$instance → dynamic
no setterinherited
delegate FutureOr<id<ByteRTCGameRoomDelegate>?>
@platform ios @detail callback
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

$createInstance(List args) → dynamic
Factory method for creating instances
override
$destroy() → void
inherited
$init(List args) → void
inherited
android_setRTCRoomEventHandler(IRTCRoomEventHandler rtcRoomEventHandler) Future<int?>
@platform android @detail api @author luomingkang @brief 通过设置 IGameRoom{@link #IGameRoom} 对象的事件句柄,监听此对象对应的回调事件。 @param rtcRoomEventHandler 参看 IRTCRoomEventHandler{@link #IRTCRoomEventHandler} @return - 0:调用成功。 - <0:调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明
destroy() Future
@detail api @author luomingkang @brief 退出并销毁调用 createGameRoom{@link #RTCEngine#createGameRoom} 所创建的游戏房间实例。
enableAudioReceive(string userId, bool enable) Future<int?>
@detail api @author luomingkang @brief 是否接收某个特定用户的音频流。关闭声音接收不会影响扬声器或其他音频输出设备的状态。 @param userId 用户 ID,最大长度为128字节的非空字符串。支持的字符集范围为:
1. 26个大写字母 A ~ Z
2. 26个小写字母 a ~ z
3. 10个数字 0 ~ 9
4. 下划线"_", at符"@", 减号"-" @param enable 是否接收指定用户的音频流:
- true:接收该用户的音频流。即允许该用户的音频数据被传递到本地设备并播放。 - false:默认设置,不接收该用户的音频流,即不播放该用户的声音。但不会关闭扬声器,扬声器仍可用于其他音频输出。 @return - 0:接口调用成功 - -2:传入的用户 ID 为空字符串。
enableAudioSend(bool enable) Future<int?>
@detail api @author luomingkang @brief 加入游戏房间后,开始或停止发送音频流。调用此接口不影响音频采集。同房间其他用户会收到相应的回调。 @param enable 是否发送音频流:
- true:发送音频流。 - false:默认设置。停止发送音频流(不会关闭麦克风),即静音。 @return - 0:表示参数检查通过,不代表打开麦克风会成功,比如房间不存在 - -3:接口调用失败。没有加入房间。 @note 不可与 EnableMicrophone{@link #IGameRoom#EnableMicrophone} 同时调用。
enableMicrophone(bool enable) Future<int?>
@detail api @author luomingkang @brief 加入游戏房间后,调用该接口开启或关闭麦克风。同房间其他用户会收到回调 OnAudioDeviceStateChanged{@link #IRTCEngineEventHandler#OnAudioDeviceStateChanged}。 @param enable 是否开启麦克风:
- true:开启麦克风,采集并发布音频流。 - false:默认设置。关闭麦克风并停止发布音频流。 @return - 0:接口调用成功。 - -3:接口调用失败。没有加入房间。 @note 不可与 enableAudioSend{@link #IGameRoom#enableAudioSend} 同时调用。
enableSpeakerphone(bool enable) Future<int?>
@detail api @author luomingkang @brief 加入游戏房间后,开启或关闭扬声器。 @param enable 是否开启扬声器:
- true:开启扬声器,接收所有远端用户的音频流。 - false:默认设置。关闭扬声器,停止接收所有远端用户的音频流。 @return - 0:接口调用成功。 - -3:接口调用失败。没有加入房间。
findOverrideIndices(List args, List<List<int>> indicesList) List<int>
查找重载参数下标列表 @desc android 构造函数存在重载 此方法通过实际传入参数与构造函数参数列表集合的比对,来获取当前实际的需要使用的参数列表
inherited
fn2AndroidClass(Function callback, dynamic nativeClass(), String methodName) → dynamic
与 ts runtime 中的 fn2AndroidClass 功能一致 将 Dart 函数转换为 Android 回调类实例供 Android 侧使用
inherited
getRangeAudio() Future<IRangeAudio?>
@detail api @author luomingkang @brief 获取游戏房间的范围语音接口实例。 @return 方法调用结果:
- IRangeAudio:成功,返回一个 IRangeAudio{@link #IRangeAudio} 实例。 - null:失败,当前 SDK 不支持范围语音功能。 @note 首次调用该方法须在创建房间后、加入房间前。范围语音相关 API 和调用时序详见范围语音
ios_setRTCGameRoomDelegate(id<ByteRTCGameRoomDelegate> roomDelegate) Future<int?>
@platform ios @detail api @author luomingkang @brief 通过设置 ByteRTCGameRoom{@link #ByteRTCGameRoom} 对象的事件句柄,监听此对象对应的回调事件。 @param roomDelegate 参见 ByteRTCRoomDelegate{@link #ByteRTCRoomDelegate}。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
joinRoom(string token, UserInfo userInfo) Future<int?>
@detail api @author luomingkang @brief 加入游戏房间。
调用 createGameRoom{@link #RTCEngine#createGameRoom} 创建游戏房间实例后,调用此方法加入游戏房间,同房间内其他用户进行音频通话。 @param token 动态密钥。用于对进房用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。Token 有效期及生成方式参看使用 Token 完成鉴权
使用不同 AppID 的 App 是不能互通的。
请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。 @param userInfo 用户信息。参看 UserInfo{@link #UserInfo}。 @return - 0:方法调用成功。触发以下回调: - 本端收到房间状态通知 onRoomStateChanged{@link #IRTCRoomEventHandler#onRoomStateChanged} 回调。 - 本端收到房间内已发布流的通知 onUserPublishStreamAudio{@link #IRTCRoomEventHandler#onUserPublishStreamAudio} 回调。 - -1:roomID / userInfo.uid 包含了无效的参数。 - -2:已经在房间内。接口调用成功后,只要收到返回值为 0 ,且未调用 leaveRoom{@link #IGameRoom#leaveRoom} 成功,则再次调用进房接口时,无论填写的房间 ID 和用户 ID 是否重复,均触发此返回值。 调用失败时,具体失败原因会通过 onRoomStateChanged{@link #IRTCRoomEventHandler#onRoomStateChanged} 回调告知。 @note - 同一个 App ID 的同一个房间内,每个用户的用户 ID 必须是唯一的。如果两个用户的用户 ID 相同,则后进房的用户会将先进房的用户踢出房间,并且先进房的用户会收到 onRoomStateChanged{@link #IRTCRoomEventHandler#onRoomStateChanged} 回调通知,错误类型详见 ERROR_CODE_DUPLICATE_LOGIN{@link #ErrorCode#ERROR_CODE_DUPLICATE_LOGIN}。 - 用户加入房间成功后,在本地网络状况不佳的情况下,SDK 可能会与服务器失去连接,并触发 onConnectionStateChanged{@link #IRTCEngineEventHandler#onConnectionStateChanged} 回调。此时 SDK 会自动重试,直到成功重连。重连成功后,本地会收到 onRoomStateChanged{@link #IRTCRoomEventHandler#onRoomStateChanged} 回调通知;如果加入房间的用户是可见用户,远端用户会收到 onUserJoined{@link #IRTCRoomEventHandler#onUserJoined} 回调通知。
leaveRoom() Future<int?>
@detail api @author luomingkang @brief 离开游戏房间。
调用此方法结束通话过程,并释放所有通话相关的资源。 @return - 0:调用成功。如果用户是房间内可见用户,触发以下回调: - 远端用户收到 onUserLeave{@link #IRTCRoomEventHandler#onUserLeave} 回调通知。 - 正在发布的流会被取消发布。远端用户收到 onAudioPublishStateChanged{@link #IRTCRoomEventHandler#onAudioPublishStateChanged} 回调通知。 - < 0:调用失败,参看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明。 @note - 加入游戏房间后,必须调用此方法结束通话,否则无法开始下一次通话。 - 此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onRoomStateChanged{@link #IRTCRoomEventHandler#onRoomStateChanged} 回调通知。你必须在收到 onRoomStateChanged{@link #IRTCRoomEventHandler#onRoomStateChanged} 回调后,再销毁房间或引擎,或调用 joinRoom{@link #RTCRoom#joinRoom} 再次加入房间。 - 调用 setUserVisibility{@link #RTCRoom#setUserVisibility} 将自身设为可见的用户离开房间后,房间内其他用户会收到 onUserLeave{@link #IRTCRoomEventHandler#onUserLeave} 回调通知。
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
setRemoteRoomAudioPlaybackVolume(int volume) Future<int?>
@detail api @author luomingkang @brief 调节某个游戏房间内所有远端用户的音频播放音量(非系统硬件音量)。 @param volume 音频播放音量值和原始音量的比值,范围是 0, 400,单位为 %,自带溢出保护。为保证更好的通话质量,建议将 volume 值设为 0,100
- 0: 静音 - 100: 原始音量,默认值 - 400: 最大可为原始音量的 4 倍(自带溢出保护) @return - 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明 @note 假设某远端用户 A 始终在被调节的目标用户范围内,
- 该方法与 setRemoteAudioPlaybackVolume{@link #RTCEngine#setRemoteAudioPlaybackVolume} 互斥,最新调用的任一方法设置的音量将覆盖此前已设置的音量,效果不叠加; - 当该方法与 setPlaybackVolume{@link #RTCEngine#setPlaybackVolume} 方法共同使用时,本地收听用户 A 的音量将为两次设置的音量效果的叠加。
toString() String
A string representation of this object.
inherited
transformToPlatformConstructorArgs(List args, List<int> indices, Map<String, dynamic> typeMap, Map<String, dynamic> enumMap, Map<String, dynamic> classMap, String platformVar) List
实例化参数处理 将 pack 过后的 enum / class 转成 android / ios 平台侧的 enum / class
inherited
updateInstance(dynamic instance) → void
inherited
updateToken(string token) Future<int?>
@detail api @author luomingkang @brief 更新游戏房间的 Token。
收到 onTokenWillExpire{@link #IRTCRoomEventHandler#onTokenWillExpire},onPublishPrivilegeTokenWillExpire{@link #IRTCRoomEventHandler#onPublishPrivilegeTokenWillExpire}, 或 onSubscribePrivilegeTokenWillExpire{@link #IRTCRoomEventHandler#onSubscribePrivilegeTokenWillExpire} 时,你必须重新获取 Token,并调用此方法更新 Token,以保证通话的正常进行。 @param token 重新获取的有效 Token。
如果 Token 无效,你会收到 onRoomStateChanged{@link #IRTCRoomEventHandler#onRoomStateChanged},错误码是 -1010。 @return 方法调用结果:
- 0:成功; - <0:失败。具体失败原因参看 ReturnStatus{@link #ReturnStatus}。 @note 请勿同时调用 updateToken{@link #IGameRoom#updateToken} 和 joinRoom{@link #IGameRoom#joinRoom} 方法更新 Token。若因 Token 过期或无效导致加入房间失败或已被移出房间,你应该在获取新的有效 Token 后调用 joinRoom{@link #IGameRoom#joinRoom} 重新加入房间。

Operators

operator ==(Object other) bool
The equality operator.
inherited