插件
enableExtension
启用/禁用插件。
TypeScript
abstract enableExtension(
    provider: string,
    extension: string,
    enable?: boolean,
    type?: MediaSourceType
  ): number;
调用时机
建议你在加入频道后调用该方法。
调用限制
- 如果要开启多个插件,需要多次调用该方法。
 - 该方法调用成功后,无法再加载其他插件。
 
相关回调
频道内调用该方法成功时会触发插件启用回调 onExtensionStartedWithContext 或插件禁用回调 onExtensionStoppedWithContext。
参数
- provider
 - 提供插件的服务商名称。
 - extension
 - 插件的名称。
 - enable
 - 是否启用插件:
true: 启用插件。false: 禁用插件。
 - type
 - 插件的媒体源类型。详见 MediaSourceType。
 
返回值
- 0: 方法调用成功。
 - < 0: 方法调用失败。详见错误码了解详情和解决建议。 
- -3: 该插件动态库没有被加载。声网推荐你检查该动态库是否存放在预期的位置,或该动态库名是否正确。
 
 
registerExtension
注册插件。
TypeScript
abstract registerExtension(
    provider: string,
    extension: string,
    type?: MediaSourceType
  ): number;
对于 SDK 外部的插件(例如云市场插件和 SDK 拓展插件),加载插件后,你需要调用该方法注册插件。SDK 内部插件(包含在 SDK 包中的插件)在初始化 IRtcEngine 后会自动加载并注册,无需调用该方法。
调用时机
- 建议你在初始化 IRtcEngine 后、加入频道前调用该方法。
 - 对于视频相关插件(例如美颜插件),需要在启用视频模块(enableVideo/enableLocalVideo)之前调用该方法。
 - 调用该方法前,需要先调用 loadExtensionProvider 加载插件。
 
调用限制
- 如果要注册多个插件,需要多次调用该方法。
 - 不同插件在 SDK 中处理数据的顺序由插件的注册顺序决定。即先注册的插件会先处理数据。
 
参数
- provider
 - 提供插件的服务商名称。
 - extension
 - 插件的名称。
 - type
 - 插件的媒体源类型。详见 MediaSourceType。
 
getExtensionProperty
获取插件的详细信息。
TypeScript
abstract getExtensionProperty(
    provider: string,
    extension: string,
    key: string,
    bufLen: number,
    type?: MediaSourceType
  ): string;
调用时机
加入频道前后均可调用。
调用限制
无。
参数
- provider
 - 提供插件的服务商名称。
 - extension
 - 插件的名称。
 - key
 - 插件属性的 Key。
 - type
 - 插件的媒体源类型。详见 MediaSourceType。
 - bufLen
 - 插件属性 JSON 字符串的最大长度。最大值为 512 字节。
 
返回值
- 方法调用成功,则返回插件信息。
 - 方法调用失败,则返回空字符串。
 
loadExtensionProvider
加载插件。
TypeScript
abstract loadExtensionProvider(
    path: string,
    unloadAfterUse?: boolean
  ): number;
该方法用于将 SDK 外部插件(例如云市场插件和 SDK 拓展插件)添加到 SDK 中。
调用时机
请在初始化 IRtcEngine 后立即调用该方法。
调用限制
如果要加载多个插件,需要多次调用该方法。
注意
 该方法仅适用于 Android。
参数
- path
 - 插件的动态库路径和名称。例如:
/library/libagora_segmentation_extension.dll。 - unloadAfterUse
 - 是否在插件使用完毕后自动卸载:
true: 当 IRtcEngine 销毁时自动卸载插件。false: 不自动卸载插件,直到进程退出(推荐)。
 
返回值
- 0: 方法调用成功。
 - < 0: 方法调用失败。详见错误码了解详情和解决建议。
 
setExtensionProperty
设置插件的属性。
TypeScript
abstract setExtensionProperty(
    provider: string,
    extension: string,
    key: string,
    value: string,
    type?: MediaSourceType
  ): number;
开启插件后,你可以调用该方法设置插件的属性。
调用时机
请在调用 enableExtension 开启插件后调用该方法。
调用限制
如果要设置多个插件的属性,需要多次调用该方法。
相关回调
调用该方法后,可能会触发插件事件回调 onExtensionEventWithContext,具体触发逻辑与插件本身相关。
参数
- provider
 - 提供插件的服务商名称。
 - extension
 - 插件的名称。
 - key
 - 插件属性的 Key。
 - value
 - 插件属性 Key 对应的值。
 - type
 - 插件的媒体源类型。详见 MediaSourceType。
 
返回值
- 0: 方法调用成功。
 - < 0: 方法调用失败。详见错误码了解详情和解决建议。
 
setExtensionProviderProperty
设置插件服务商的属性。
TypeScript
abstract setExtensionProviderProperty(
    provider: string,
    key: string,
    value: string
  ): number;
你可以调用该方法设置插件服务商的属性,并根据服务商的类型初始化相关参数。
调用时机
请在调用 registerExtension 之后、enableExtension 之前调用该方法。
调用限制
如果要设置多个插件服务商的属性,需要多次调用该方法。
参数
- provider
 - 提供插件的服务商名称。
 - key
 - 插件属性的 Key。
 - value
 - 插件属性 Key 对应的值。
 
返回值
- 0: 方法调用成功。
 - < 0: 方法调用失败。详见错误码了解详情和解决建议。
 
onExtensionErrorWithContext
插件出错回调。
TypeScript
onExtensionErrorWithContext?(
    context: ExtensionContext,
    error: number,
    message: string
  ): void;
详情
启用插件失败或者插件运行出错时,插件会触发该回调并报告错误码和错误原因。
参数
- context
 - 插件上下文信息,详见 ExtensionContext。
 - error
 - 错误码。详见插件服务商提供的插件文档。
 - message
 - 错误原因。详见插件服务商提供的插件文档。
 
onExtensionEventWithContext
插件事件回调。
TypeScript
onExtensionEventWithContext?(
    context: ExtensionContext,
    key: string,
    value: string
  ): void;
详情
为监听插件事件,你需要注册该回调。
参数
- context
 - 插件上下文信息,详见 ExtensionContext。
 - key
 - 插件属性的 Key。
 - value
 - 插件属性 Key 对应的值。
 
onExtensionStartedWithContext
插件已启用成功回调。
TypeScript
onExtensionStartedWithContext?(context: ExtensionContext): void;
详情
成功启用插件后会触发该回调。
参数
- context
 - 插件上下文信息,详见 ExtensionContext。
 
onExtensionStoppedWithContext
插件已禁用回调。
TypeScript
onExtensionStoppedWithContext?(context: ExtensionContext): void;
详情
成功禁用插件后会触发该回调。
参数
- context
 - 插件上下文信息,详见 ExtensionContext。