AgoraSpatialAudioParams
空间音频参数。
Objective-C
__attribute__((visibility("default"))) @interface AgoraSpatialAudioParams : NSObject
@property(assign, nonatomic) double speaker_azimuth;
@property(assign, nonatomic) double speaker_elevation;
@property(assign, nonatomic) double speaker_distance;
@property(assign, nonatomic) NSInteger speaker_orientation;
@property(assign, nonatomic) BOOL enable_blur;
@property(assign, nonatomic) BOOL enable_air_absorb;
@property(assign, nonatomic) double speaker_attenuation;
@property(assign, nonatomic) BOOL enable_doppler;
@end
speaker_azimuth
远端用户或媒体播放器相对于本地用户的水平角。取值范围为 [0,360],单位为度。其中:
- 0:(默认)0 度,表示水平面的正前方。
- 90: 90 度,表示水平面的正左方。
- 180: 180 度,表示水平面的正后方。
- 270: 270 度,表示水平面的正右方。
- 360: 360 度,表示水平面的正前方。
speaker_elevation
远端用户或媒体播放器相对于本地用户的俯仰角。取值范围为 [-90,90],单位为度。其中:
- 0:(默认)0 度,表示水平面无旋转。
- -90: -90 度,表示水平面向下旋转 90 度。
- 90: 90 度,表示水平面向上旋转 90 度。
speaker_distance
远端用户或媒体播放器相对于本地用户的距离。取值范围为 [1,50],单位为米。默认值为 1 米。
speaker_orientation
远端用户或媒体播放器相对于本地用户的朝向。取值范围为 [0,180],单位为度。其中:
- 0:(默认)0 度,表示声源和听者朝向同一方向。
- 180: 180 度,表示声源和听者面对面。
enable_blur
是否开启声音模糊处理:
YES
: 开启模糊处理。NO
: (默认)关闭模糊处理。
enable_air_absorb
是否开启空气衰减,即模拟声音在空气中传播的音色衰减效果:在一定的传输距离下,高频声音衰减速度快、低频声音衰减速度慢。
YES
: (默认)开启空气衰减。需确认 speaker_attenuation 的值不为0
,否则该设置不生效。NO
: 关闭空气衰减。
speaker_attenuation
远端用户或媒体播放器的声音衰减系数,取值范围为[0,1]。其中:
- 0:广播模式,即音量和音色均不随距离衰减,无论距离远近,本地用户听到的音量和音色都无变化。
- (0,0.5):弱衰减模式,即音量和音色(需同时开启 enable_air_absorb )在传播过程中仅发生微弱衰减,跟真实环境相比,声音可以传播得更远。
- 0.5:(默认)模拟音量在真实环境下的衰减,效果等同于不设置 speaker_attenuation 参数。
- (0.5,1]:强衰减模式,即音量和音色(需同时开启 enable_air_absorb )在传播过程中发生迅速衰减。
enable_doppler
是否开启多普勒音效:当声源与接收声源者之间产生相对位移时,接收方听到的音调会发生变化。
YES
: 开启多普勒音效。NO
: (默认)关闭多普勒音效。
注意
- 该参数适用于声源高速运动的场景(例如:赛车游戏),在普通音视频互动场景(语聊、连麦、在线 KTV)中不建议开启。
- 开启该参数时,建议设定一个规律的周期(比如 30 ms),然后调用 updatePlayerPositionInfo:positionInfo:、updateSelfPosition:axisForward:axisRight:axisUp: 和 updateRemotePosition:positionInfo: 方法持续更新声源和接收方的相对距离。以下因素会导致多普勒效应达不到预期或者声音出现抖动:更新距离的周期过长,更新周期不规律,网络丢包或延迟导致距离信息丢失。