设置音频订阅优先级
更新时间: 2024/09/18 16:26:13
在大型音频会议或语聊房场景中,会出现几百人至上千人同时说话的情况。在 ASL 策略下,云信服务器会优先选择说话音量最高或讲话内容最清晰的三条线路,并将线路上的音频数据传输给房间内其他所有用户,但观众往往只需聆听一个主讲人说话。为了保证即使主讲人说话不够清晰,用户依然可以接收到指定的必需音频流,NERTC SDK 支持通过音频订阅优先级功能对于订阅的音频流设置优先级。
功能介绍
设置音频订阅优先级指优先订阅远端某用户发布的音频流。NERTC SDK 支持在 ASL 策略下,即在服务器线路上选择最清晰的三条音频流传输给本地用户时,本地用户设置优先订阅一个成员的音频流后,即使该成员的说话音量较低或不够清晰,本地用户仍能接收到该指定成员的音频流。
注意事项
- 请在成功加入房间后设置,且必须开启音频自动订阅模式,此模式默认打开。
- 每次只能设置优先订阅一个成员的音频流,重复设置会覆盖前一次设置。优先级设置只在本次通话中生效,下一次通话时需要再次设置。
- 对 A 用户发布的音频流设置订阅优先级后,如果 A 用户未加入此房间或者未发布音频流,此设置无效,需等对方加入房间并启用音频开关后再设置。
配置步骤
- 在成功加入房间并调用 subscribeAllRemoteAudioStreams 方法,设置 enable 参数为 true 开启音频自动订阅模式(默认开启)。
- 调用 setRemoteHighPriorityAudioStream 方法设置远端用户 A 的音频流为最高优先级。调用该方法时,您需要设 置 enable 参数为 true 开启音频订阅高优先级功能,并设置用户 A 的 uid,从而优先听到该用户的音频。
- 若您希望取消优先订阅用户 A 发布的音频流,请再次调用 setRemoteHighPriorityAudioStream 方法,设置 enable 参数为 false,同时设置用户 A 的 uid 取消订阅;或直接设置用户 B 的 uid,覆盖之前的设置,即只优先订阅用户 B 的音频流。
示例代码
//设置uid为1111的用户音频为高优先级
NERtcEx.getInstance().setRemoteHighPriorityAudioStream(true, 1111);
//取消uid为1111的用户音频高优先级
NERtcEx.getInstance().setRemoteHighPriorityAudioStream(false, 1111);
API 参考
此文档是否对你有帮助?