初始化相关
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 只能用于创建一个 |
handler |
|
返回值
-
方法调用成功,返回一个
RtcEngine
对象。 -
方法调用失败,抛出异常,你需要捕获异常并进行处理。详见
错误码
了解详情和解决建议。
create [2/2]
创建并初始化 RtcEngine
。
public static synchronized RtcEngine create(RtcEngineConfig config) throws Exception {}
RtcEngine
类的所有接口函数,如无特殊说明,都是异步调用,对接口的调用建议在同一个线程进行。
注意:
-
请确保在调用其他 API 前先调用该方法创建并初始化
RtcEngine
。 -
调用该方法和
create [1/2]
均能创建RtcEngine
实例。该方法与create [1/2]
的 区别在于,该方法支持在创建RtcEngine
实例时进行更多配置,如指定访问区域、设置日志文件等。 -
SDK 只支持每个 app 创建一个
RtcEngine
实例。
参数
参数名 | 描述 |
---|---|
config |
|
返回值
-
方法调用成功,返回一个
RtcEngine
对象。 -
方法调用失败,抛出异常,你需要捕获异常并进行处理。详见
错误码
了解详情和解决建议。
destroy
销毁 RtcEngine
对象。
public static synchronized void destroy() {
if (mInstance == null)
return;
mInstance.doDestroy();
mInstance = null;
System.gc();
}
该方法释放 SDK 使用的所有资源。有些 app 只在用户需要时才进行实时音视频通信,不需要时则将资源释放出来用于其他操作,该方法适用于此类情况。
调用该方法后,你将无法再使用 SDK 的其它方法和回调。如需再次使用实时音视频通信功能,你必须依次重新调用 create [2/2]
方法创建一个新的 RtcEngine
对象。
注意:
-
该方法为同步调用。需要等待
RtcEngine
资源释放后才能执行其他操作(例如:创建一个新的RtcEngine
对象),因此建议在子线程中调用该方法,避免主线程阻塞。 -
不建议在 SDK 的回调中调用
destroy
,否则由于 SDK 要等待回调返回才能回收相关的对象资源,会造成死锁。
addHandler
添加主回调事件。
public void addHandler(IRtcEngineEventHandler handler) {
mInstance.addHandler(handler);
}
IRtcEngineEventHandler
接口类用于 SDK 向 app 发送回调事件通知,app 通过继承该接口类的方法获取 SDK 的事件通知。
接口类的所有方法都有缺省(空)实现,app 可以根据需要只继承关心的事件。在回调方法中,app 不应该做耗时或者调用可能会引起阻塞的 API(如 sendStreamMessage),
否则可能影响 SDK 的运行。
参数
参数名 | 描述 |
---|---|
handler | 待添加的回调事件,详见 |
removeHandler
删除指定的回调句柄。
public void removeHandler(IRtcEngineEventHandler handler) {
mInstance.removeHandler((IAgoraEventHandler) handler);
}
该方法删除指定的回调句柄。对于某些注册的回调句柄,如果你在收到相应回调事件后无需再次接收回调消息,可以调用该方法移除回调句柄。
参数
参数名 | 描述 |
---|---|
handler | 待删除的回调句柄。详见 |