setLocalMediaPriority abstract method
设置本地用户的媒体流优先级。
如果某个用户的优先级为高,那么该用户媒体流的优先级就会高于其他用户,弱网环境下 SDK 会优先保证高优先级用户收到的媒体流的质量。
调用时机
请在引擎初始化之后,加入房间之前调用此方法。
说明
- 一个音视频房间中只有一个高优先级的用户。建议房间中只有一位用户调用 setLocalMediaPriority 将本端媒体流设为高优先级,否则需要开启抢占模式,保证本地用户的高优先级设置生效。
- 调用 switchChannel 方法快速切换房间后,媒体优先级会恢复为默认值,即普通优先级。
参数说明
priority
本地用户的媒体流优先级,默认为 NERtcMediaPriority.normal,即普通优先级,详细信息请参考 NERtcMediaPriority。
isPreemptive
是否开启抢占模式。
- true:开启抢占模式。抢占模式开启后,本地用户可以抢占其他用户的高优先级,被抢占的用户的媒体优先级变为普通优先级,在抢占者退出房间后,其他用户的优先级仍旧维持普通优先级。
- false:关闭抢占模式。抢占模式关闭时,如果房间中已有高优先级用户,则本地用户的高优先级设置不生效,仍旧为普通优先级。
返回值
- 0(OK):方法调用成功。
- 其他:方法调用失败。
- 30003(invalidParam):参数错误。
- 30005(invalidState):状态错误,比如引擎尚未初始化。
Implementation
Future<int> setLocalMediaPriority(int priority, bool isPreemptive);