设置音频转发路由

更新时间: 2024/03/15 17:20:46

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

应用场景

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

实现方法

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

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

设置推流白名单。

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

  • 如果设置的 uid 列表中,某用户不在该 RTC 房间内,则该 uid 不生效。

  • 如果 uid 列表为空或 null,表示其他所有人均可订阅自己的音频。

设置拉流白名单。

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

设置拉流黑名单。

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

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

示例代码

// step 0: 创建并初始化好引擎
.....

NSMutableArray<NSNumber *> *uidArray = [NSMutableArray arrayWithObjects:@用户uid1, @用户uid2, @用户uid3, nil];

// 设置推流白名单
[[NERtcEngine sharedEngine] setAudioSubscribeOnlyBy:uidArray];
// 设置拉流白名单
[[NERtcEngine sharedEngine] setSubscribeAudioAllowlist:uidArray];
// 设置拉流黑名单
NERtcAudioStreamType type = kNERtcAudioStreamTypeMain;
[[NERtcEngine sharedEngine] setSubscribeAudioBlocklist:type uidArray:uidArray];
此文档是否对你有帮助?
有帮助
去反馈
  • 应用场景
  • 实现方法
  • 设置推流白名单。
  • 设置拉流白名单。
  • 设置拉流黑名单。
  • 示例代码