setUserVisibility method
@detail api
@brief 设置用户可见性。未调用该接口前,本地用户默认对他人可见。
默认情况下,一个 RTC 房间最多同时容纳 50 名可见用户,最多 30 人可同时上麦。更多信息参看用户和媒体流上限。
@param enable 设置用户是否对房间内其他用户可见:
- true: 可见,用户可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。
- false: 不可见,用户不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。
@return
- 0: 调用成功。
- < 0: 调用失败。参看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明。
设置用户可见性,会收到设置成功/失败回调 onUserVisibilityChanged{@link #IRTCRoomEventHandler#onUserVisibilityChanged}。(v3.54 新增)
- 在加入房间前设置用户可见性,若设置的可见性与默认值不同,将在加入房间时触发本回调。
- 在加入房间后设置用户可见性,若可见性前后不同,会触发本回调。
- 在断网重连后,若可见性发生改变,会触发本回调。
@note
- 在加入房间前后,用户均可调用此方法设置用户可见性。
- 在房间内,调用此方法成功切换用户可见性后,房间内其他用户会收到相应的回调。
- 从可见换至不可见时,房间内其他用户会收到 onUserLeave{@link #IRTCRoomEventHandler#onUserLeave}。
- 从不可见切换至可见时,房间内其他用户会收到 onUserJoined{@link #IRTCRoomEventHandler#onUserJoined}。
- 若调用该方法将可见性设为 false,此时尝试发布流会收到 WARNING_CODE_PUBLISH_STREAM_FORBIDEN 警告。
Implementation
Future<int?> setUserVisibility(bool enable) async {
$a() => ($instance as $p_a.RTCRoom).setUserVisibility(enable);
$i() => ($instance as $p_i.ByteRTCRoom).setUserVisibility(enable);
if (Platform.isAndroid) {
return $a();
} else if (Platform.isIOS) {
return $i();
} else {
throw UnsupportedError(
'Not Support Platform ${Platform.operatingSystem}');
}
}