ILocalSpatialAudioEngine
该类通过 SDK 计算用户坐标,实现空间音效。
该类继承自 IBaseSpatialAudioEngine。调用该类下其他 API 前,你需要调用 initialize 方法初始化该类。
clearRemotePositions
删除所有远端用户的空间位置信息。
public abstract int clearRemotePositions();
成功调用该方法后,本地用户将听不到所有远端用户。
离开频道后,为避免计算资源的浪费,你也可以调用该方法删除所有远端用户的空间位置信息。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
create
public static synchronized ILocalSpatialAudioEngine create() { if (mInstance == null) { mInstance = new LocalSpatialAudioImpl(); } return mInstance; }
该方法需要在 initialize 前调用。
返回值
initialize
public abstract int initialize(LocalSpatialAudioConfig config);
注:
- 你需要在 create 后调用该方法。
- 在调用 ILocalSpatialAudioEngine 类的其他方法前,你需要先调用该方法初始化 ILocalSpatialAudioEngine。
- SDK 只支持每个 app 创建一个 ILocalSpatialAudioEngine 实例。
参数
- config
- ILocalSpatialAudioEngine 的配置。详见 LocalSpatialAudioConfig。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
destroy
public static synchronized void destroy() { if (mInstance == null) return; mInstance.release(); mInstance = null; }
该方法释放 ILocalSpatialAudioEngine 下的所有资源。当用户不需要使用空间音效时,你可以调用该方法将资源释放出来用于其他操作。
调用该方法后,你将无法再使用 ILocalSpatialAudioEngine 下的任何 API。如需再次使用空间音效,你需要等 destroy 执行结束后再调用 initialize 创建一个新的 ILocalSpatialAudioEngine。
removeRemotePosition
删除指定远端用户的空间位置信息。
public abstract int removeRemotePosition(int uid);
成功调用该方法后,本地用户将听不到指定的远端用户。
离开频道后,为避免计算资源的浪费,你也可以调用该方法删除指定远端用户的空间位置信息。
参数
- uid
- 用户 ID。需与用户加入频道时填写的用户 ID 一致。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
updateRemotePosition
更新远端用户的空间位置信息。
public abstract int updateRemotePosition(int uid, RemoteVoicePositionInfo posInfo);
成功调用该方法后,SDK 会根据本地和远端用户的相对位置计算空间音效参数。
注: 该方法需要在 joinChannel [2/2] 后调用。
参数
- uid
- 用户 ID。需与用户加入频道时填写的用户 ID 一致。
- posInfo
- 远端用户的空间位置信息。详见 RemoteVoicePositionInfo。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
LocalSpatialAudioConfig
public class LocalSpatialAudioConfig { public RtcEngine mRtcEngine; public LocalSpatialAudioConfig() { mRtcEngine = null; } }
属性
- mRtcEngine
- RtcEngine。