设置音频转发路由

更新时间: 2025/06/11 16:45:39

本文介绍通过自定义音频转发路由实现指定用户的音频推流和订阅,以满足游戏语音等场景下的需求。您可以设置推流白名单、拉流白名单或拉流黑名单,从而实现只推流给指定用户或只订阅指定用户的音频。

应用场景

游戏语音:两个好友组成一个小队,与三个陌生人组成一个大队伍,需要能听到整个队伍的声音,但只能和小队的好友进行交流。

实现方法

您可以根据实际场景,灵活选择以下接口,实现对应的音频转发规则。

例如,如果想要实现说话只被小队成员听见,您可以设置推流白名单为除自己外的其他小队成员。如果想要实现只听见小队成员的声音,您可以设置拉流白名单为除自己外的其他小队成员。

设置推流白名单

进入房间后,调用 setPublishAudioAllowList 接口,设置本端的音频只能被房间内指定的人订阅。(默认情况下房间所有其他人都可以订阅自己的音频。)

  • 如果设置的 uid 列表中,某用户不在该 RTC 房间内,则该 uid 不生效。
  • 如果 uid 列表为空或 null,表示其他所有人均可订阅自己的音频。

示例代码

nertc::uid_t uid_list[3] = {UID_A, UID_B, UID_C};
nertc_engine_->setPublishAudioAllowList(uid_list, 3);

设置拉流白名单

调用 setSubscribeAudioAllowList 接口,设置只订阅指定用户的音频流。(默认为订阅房间所有用户的音频。)

示例代码

nertc::uid_t uid_list[3] = {UID_A, UID_B, UID_C};
nertc_engine_->setSubscribeAudioAllowList(uid_list, 3);

设置拉流黑名单

调用 setSubscribeAudioBlockList 接口,设置不订阅指定用户的音频流。

黑名单的优先级高于白名单。如果某个用户同时在黑名单和白名单中,以黑名单为准。

示例代码

nertc::uid_t uid_list[3] = {UID_A, UID_B, UID_C};
nertc_engine_->setSubscribeAudioAllowList(uid_list, 3);
此文档是否对你有帮助?
有帮助
去反馈
  • 应用场景
  • 实现方法
  • 设置推流白名单
  • 示例代码
  • 设置拉流白名单
  • 示例代码
  • 设置拉流黑名单
  • 示例代码