ILocalSpatialAudioEngine
该类通过 SDK 计算用户坐标,实现空间音效。
该类继承自 IBaseSpatialAudioEngine。调用该类下其他 API 前,你需要调用 initialize 方法初始化该类。
clearRemotePositions
删除所有远端用户的空间位置信息。
virtual int clearRemotePositions() = 0;
成功调用该方法后,本地用户将听不到所有远端用户。
离开频道后,为避免计算资源的浪费,你也可以调用该方法删除所有远端用户的空间位置信息。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
initialize
virtual int initialize(const LocalSpatialAudioConfig& config) = 0;
注:
- 你需要在
queryInterface(AGORA_IID_LOCAL_SPATIAL_AUDIO)
后调用该方法。 - 在调用 ILocalSpatialAudioEngine 类的其他方法前,你需要先调用该方法初始化 ILocalSpatialAudioEngine。
- SDK 只支持每个 app 创建一个 ILocalSpatialAudioEngine 实例。
参数
- config
- ILocalSpatialAudioEngine 的配置。详见 LocalSpatialAudioConfig。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
removeRemotePosition
删除指定远端用户的空间位置信息。
virtual int removeRemotePosition(uid_t uid) = 0;
成功调用该方法后,本地用户将听不到指定的远端用户。
离开频道后,为避免计算资源的浪费,你也可以调用该方法删除指定远端用户的空间位置信息。
参数
- uid
- 用户 ID。需与用户加入频道时填写的用户 ID 一致。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
updateRemotePosition
更新远端用户的空间位置信息。
virtual int updateRemotePosition(uid_t uid, const RemoteVoicePositionInfo &posInfo) = 0;
成功调用该方法后,SDK 会根据本地和远端用户的相对位置计算空间音效参数。
注: 该方法需要在 joinChannel [2/2] 后调用。
参数
- uid
- 用户 ID。需与用户加入频道时填写的用户 ID 一致。
- posInfo
- 远端用户的空间位置信息。详见 RemoteVoicePositionInfo。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
LocalSpatialAudioConfig
struct LocalSpatialAudioConfig { agora::rtc::IRtcEngine* rtcEngine; LocalSpatialAudioConfig() : rtcEngine(NULL) {} };
属性
- rtcEngine
- IRtcEngine。