初始化相关
addHandler
添加主回调事件。
public void addHandler(IRtcEngineEventHandler handler) {
mInstance.addHandler(handler);
}
详情
接口类 IRtcEngineEventHandler 用于 SDK 向 App 发送回调事件通知,App 通过继承该接口类的方法获取 SDK 的事件通知。 接口类的所有方法都有缺省(空)实现,App 可以根据需要只继承关心的事件。在回调方法中,App 不应该做耗时或者调用可能会引起阻塞的 API(如 sendStreamMessage), 否则可能影响 SDK 的运行。
参数
- handler
- 待添加的回调事件,详见 IRtcEngineEventHandler。
create [1/2]
创建并初始化 RtcEngine
。
public static synchronized RtcEngine create(
Context context, String appId, IRtcEngineEventHandler handler) throws Exception {}
详情
RtcEngine 类的所有接口函数,如无特殊说明,都是异步调用,对接口的调用建议在同一个线程进行。
- 请确保在调用其他 API 前先调用该方法创建并初始化 RtcEngine。
- 调用该方法和 create [2/2] 均能创建 RtcEngine 实例。该方法与 create [2/2] 的区别在于,create [2/2] 支持在创建 RtcEngine 实例时进行更多配置,如指定访问区域、设置日志文件等。
- SDK 只支持每个 App 创建一个 RtcEngine 实例。
参数
- context
安卓活动上下文。
- appId
- 声网为 App 开发者签发的 App ID。 使用同一个 App ID 的 App 才能进入同一个频道进行通话或直播。一个 App ID 只能用于创建一个 RtcEngine。如需更换 App ID,必须先调用 destroy [1/2] 销毁当前 RtcEngine 再重新创建。
- handler
- RtcEngine 的事件句柄,详见 IRtcEngineEventHandler。
返回值
- 方法调用成功,返回一个正常初始化的 RtcEngine 对象。
- 方法调用失败,抛出异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
destroy [2/2]
销毁 RtcEngine
实例并释放相关资源。
public static synchronized void destroy(@Nullable IRtcEngineReleaseCallback callback)
当不再需要实时通信功能时,调用该方法以释放 RtcEngine 实例及其相关资源,释放的资源可供其他操作使用。推荐在用户偶尔进行语音或视频通话的场景中使用。
调用限制
无。
参数
- callback
- 用于配置引擎的同步或异步销毁方式。
- 非
NULL
:异步销毁。方法会立即返回,此时引擎资源可能尚未完全释放。引擎销毁完成后会触发 onEngineReleased 回调。 NULL
:同步销毁。方法仅在引擎资源完全释放后才返回。详见 IRtcEngineReleaseCallback。
- 非
create [2/2]
创建并初始化 RtcEngine
。
public static synchronized RtcEngine create(RtcEngineConfig config) throws Exception {}
该方法和 create [1/2] 均能创建 RtcEngine 实例。该方法与 create [1/2] 的区别在于,该方法支持在创建 RtcEngine 实例时进行更多配置,如指定访问区域、设置日志文件等。
调用时机
请确保在调用其他 API 前先调用该方法创建并初始化 RtcEngine。
调用限制
SDK 只支持每个 App 创建一个 RtcEngine 实例。
参数
- config
RtcEngine 实例的配置。详见 RtcEngineConfig。
返回值
- 方法调用成功,返回一个成功初始化的 RtcEngine 对象。
- 方法调用失败,抛出异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
onEngineReleased
RtcEngine
被释放时触发的回调。
@CalledByNative void onEngineReleased();
该回调在调用 destroy [1/2] 方法以异步释放 RtcEngine 对象时被触发。
调用限制
无。
destroy [1/2]
销毁 RtcEngine
对象。
public static synchronized void destroy() {
destroy(null);
}
详情
该方法释放 SDK 使用的所有资源。有些 App 只在用户需要时才进行实时音视频通信,不需要时则将资源释放出来用于其他操作,该方法适用于此类情况。
调用该方法后,你将无法再使用 SDK 的其它方法和回调。如需再次使用实时音视频通信功能,你必须依次重新调用 create [2/2] 方法创建一个新的 RtcEngine 对象。
- 不建议在 SDK 的回调中调用 destroy [1/2],否则由于 SDK 要等待回调返回才能回收相关的对象资源,会造成死锁。
removeHandler
删除指定的回调句柄。
public void removeHandler(IRtcEngineEventHandler handler) {
mInstance.removeHandler(handler);
}
详情
该方法删除指定的回调句柄。对于某些注册的回调句柄,如果你在收到相应回调事件后无需再次接收回调消息,可以调用该方法移除回调句柄。
参数
- handler
- 待删除的回调句柄。详见 IRtcEngineEventHandler。
onEngineReleased
RtcEngine
被释放时触发的回调。
@CalledByNative void onEngineReleased();
该回调在调用 destroy [1/2] 方法以异步释放 RtcEngine 对象时被触发。
触发时机
调用 destroy [1/2] 方法以异步释放 RtcEngine 对象时触发该回调。
使用限制
无。