setLocalMediaPriority abstract method

Future<int> setLocalMediaPriority(
  1. int priority,
  2. bool isPreemptive
)

设置本地用户的媒体流优先级。

如果某个用户的优先级为高,那么该用户媒体流的优先级就会高于其他用户,弱网环境下 SDK 会优先保证高优先级用户收到的媒体流的质量。

调用时机

请在引擎初始化之后,加入房间之前调用此方法。

说明

  • 一个音视频房间中只有一个高优先级的用户。建议房间中只有一位用户调用 setLocalMediaPriority 将本端媒体流设为高优先级,否则需要开启抢占模式,保证本地用户的高优先级设置生效。
  • 调用 switchChannel 方法快速切换房间后,媒体优先级会恢复为默认值,即普通优先级。

参数说明

priority 本地用户的媒体流优先级,默认为 NERtcMediaPriority.normal,即普通优先级,详细信息请参考 NERtcMediaPriority

isPreemptive 是否开启抢占模式。

  • true:开启抢占模式。抢占模式开启后,本地用户可以抢占其他用户的高优先级,被抢占的用户的媒体优先级变为普通优先级,在抢占者退出房间后,其他用户的优先级仍旧维持普通优先级。
  • false:关闭抢占模式。抢占模式关闭时,如果房间中已有高优先级用户,则本地用户的高优先级设置不生效,仍旧为普通优先级。

返回值

  • 0(OK):方法调用成功。
  • 其他:方法调用失败。
    • 30003(invalidParam):参数错误。
    • 30005(invalidState):状态错误,比如引擎尚未初始化。

Implementation

Future<int> setLocalMediaPriority(int priority, bool isPreemptive);