范围语音是指,同一 RTC 房间中在设定的音频接收距离范围内,音源音量的大小与音源距离呈一定的衰减关系,即本地用户收听到的远端用户音频音量会随着远端用户的靠近/远离而放大/减弱。
该功能适用于吃鸡类游戏场景,你可以利用音量大小来判断其他玩家距离的远近,建议配合空间音频功能使用,以获得更好的沉浸式体验。
解析:
区域 r 内的音频没有衰减效果,即对于音频接收用户 P 而言,音频发布用户 A 和 B 的音量一样大
区域 R 内的音频音量随距离增加而衰减,即对于用户 P 而言,用户 C 的音量大于用户 D 的音量
区域 R 之外的音频音量为 0,即用户 P 收听不到用户 E 的音频
SDK 支持进房前后动态开关范围语音效果
开启范围语音的步骤如下:
调用 getRangeAudio 获取范围语音接口实例。
调用 updatePosition 更新本地用户在房间中的位置坐标。
配合空间音频功能使用时,应保证为同一用户分别传入的是相同的坐标信息。
调用 updateReceiveRange 更新本地用户具有音量衰减效果的音频接收范围。
调用 enableRangeAudio 开启范围语音功能,收听设定范围内音频音量衰减效果。
调用 setAttenuationModel 设置范围语音的音量衰减模式。
在手动订阅音频流的模式下,建议先调用
registerRangeAudioObserver注册衰减系数回调,房内任一远端用户更新位置或语音接收范围后,便会触发回调onRangeAudioInfo,你可根据回调中衰减系数提示本地用户是否订阅该用户的音频流。
| 功能简述 | Android | iOS | Windows |
|---|---|---|---|
| 获取范围语音接口实例 | getRangeAudio | getRangeAudio | getRangeAudio |
| 更新本地用户在房间内空间直角坐标系中的位置坐标 | updatePosition | updatePosition: | updatePosition |
| 开启/关闭范围语音功能 | enableRangeAudio | enableRangeAudio: | enableRangeAudio |
| 更新本地用户的音频收听范围 | updateReceiveRange | updateReceiveRange: | updateReceiveRange |
| 设置范围语音的音量衰减模式 | setAttenuationModel | setAttenuationModel:coefficient: | / |
| 设置范围语音衰减系数监测器 | registerRangeAudioObserver | registerRangeAudioObserver: | registerRangeAudioObserver |