setClientRole abstract method

Future<int> setClientRole(
  1. int role
)

设置直播场景下的用户角色。 通过本接口可以实现将用户角色在“主播”(broadcaster)和“观众“(audience)之间的切换,用户加入房间后默认为“主播”。

使用前提

该方法仅在通过 setChannelProfile 方法设置房间场景为直播场景(liveBroadcasting)时调用有效。

调用时机

请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。

业务场景

适用于观众上下麦与主播互动的互动直播场景。

说明

用户切换为观众角色时,SDK 会自动关闭音视频设备。

在加入频道前或在频道中,用户可以通过setClientRole 接口设置本端模式为观众或主播模式。

参数说明

role 用户角色,具体请参见 NERtcClientRole。用户角色包括:

  • broadcaster(0):设置用户角色为主播。主播可以开关摄像头等设备、可以发布流、可以操作互动直播推流相关接口、加入或退出房间状态对其他房间内用户可见。
  • audience(1):设置用户角色为观众。观众只能收流不能发流加入或退出房间状态对其他房间内用户不可见。

相关回调

  • 加入房间前调用该方法设置用户角色,不会触发任何回调,在加入房间成功后角色自动生效: - 设置用户角色为主播:加入房间后,远端用户触发 NERtcChannelEventCallback.onUserJoined 回调。 - 设置用户角色为观众:加入房间后,远端用户不触发任何回调。
  • 加入房间后调用该方法切换用户角色: - 从观众角色切为主播:本端用户触发NERtcChannelEventCallback.onClientRoleChange 回调,远端用户触发 onUserJoined 回调。 - 从主播角色切为观众:本端用户触发 NERtcChannelEventCallback.onClientRoleChange 回调,远端用户触发 onUserLeave 回调。

返回值

  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30001(errFatal):内部错误,比如音频相关模块未初始化成功。
    • 30003(invalidParam):参数错误,比如传入的 int 值不是观众或主播。
    • 30005(invalidState):状态错误,比如引擎尚未初始化。
    • 30101(roomNotJoined): 尚未加入房间。

Implementation

Future<int> setClientRole(int role);