插件

  • C#

更新时间不可用

EnableExtension

启用/禁用插件。

C#
public abstract int EnableExtension(string provider, string extension, bool enable = true, MEDIA_SOURCE_TYPE type = MEDIA_SOURCE_TYPE.UNKNOWN_MEDIA_SOURCE);

调用时机

建议你在加入频道后调用该方法。

调用限制

  • 如果要开启多个插件,需要多次调用该方法。
  • 该方法调用成功后,无法再加载其他插件。

相关回调

频道内调用该方法成功时会触发插件启用回调 OnExtensionStartedWithContext 或插件禁用回调 OnExtensionStoppedWithContext。

参数

参数名描述
provider

提供插件的服务商名称。

extension

插件的名称。

enable

是否启用插件:

  • true: 启用插件。
  • false: 禁用插件。
type

插件的媒体源类型。详见 MEDIA_SOURCE_TYPE。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。

  • < 0: 方法调用失败。详见错误码了解详情和解决建议。

    • -3: 该插件动态库没有被加载。声网推荐你检查该动态库是否存放在预期的位置,或该动态库名是否正确。

所属接口类

GetExtensionProperty

获取插件的详细信息。

C#
public abstract int GetExtensionProperty(string provider, string extension, string key, ref string value, int buf_len, MEDIA_SOURCE_TYPE type = MEDIA_SOURCE_TYPE.UNKNOWN_MEDIA_SOURCE);

调用时机

加入频道前后均可调用。

调用限制

无。

参数

参数名描述
provider

输出参数。提供插件的服务商名称。

extension

输出参数。插件的名称。

key

输出参数。插件属性的 Key。

value

输出参数。插件属性 Key 对应的值。

type

插件的媒体源类型。详见 MEDIA_SOURCE_TYPE。

buf_len

插件属性 JSON 字符串的最大长度。最大值为 512 字节。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。详见错误码了解详情和解决建议。

所属接口类

LoadExtensionProvider

加载插件。

C#
public abstract int LoadExtensionProvider(string path, bool unload_after_use = false);

该方法用于将 SDK 外部插件(例如云市场插件和 SDK 拓展插件)添加到 SDK 中。

调用时机

请在初始化 IRtcEngine 后立即调用该方法。

调用限制

如果要加载多个插件,需要多次调用该方法。

参数

参数名描述
path

插件的动态库路径和名称。例如:/library/libagora_segmentation_extension.dll。

unload_after_use

是否在插件使用完毕后自动卸载:

  • true: 当 IRtcEngine 销毁时自动卸载插件。
  • false: 不自动卸载插件,直到进程退出(推荐)。
表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。详见错误码了解详情和解决建议。

所属接口类

RegisterExtension

注册插件。

C#
public abstract int RegisterExtension(string provider, string extension, MEDIA_SOURCE_TYPE type = MEDIA_SOURCE_TYPE.UNKNOWN_MEDIA_SOURCE);

对于 SDK 外部的插件(例如云市场插件和 SDK 拓展插件),加载插件后,你需要调用该方法注册插件。SDK 内部插件(包含在 SDK 包中的插件)在初始化 IRtcEngine 后会自动加载并注册,无需调用该方法。

调用时机

调用限制

  • 如果要注册多个插件,需要多次调用该方法。
  • 不同插件在 SDK 中处理数据的顺序由插件的注册顺序决定。即先注册的插件会先处理数据。

参数

参数名描述
provider

提供插件的服务商名称。

extension

插件的名称。

type

插件的媒体源类型。详见 MEDIA_SOURCE_TYPE。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。

  • < 0: 方法调用失败。详见错误码了解详情和解决建议。

    • -3: 该插件动态库没有被加载。声网推荐你检查该动态库是否存放在预期的位置,或该动态库名是否正确。

所属接口类

SetExtensionProperty

设置插件的属性。

C#
public abstract int SetExtensionProperty(string provider, string extension, string key, string value, MEDIA_SOURCE_TYPE type = MEDIA_SOURCE_TYPE.UNKNOWN_MEDIA_SOURCE);

开启插件后,你可以调用该方法设置插件的属性。

调用时机

请在调用 EnableExtension 开启插件后调用该方法。

调用限制

如果要设置多个插件的属性,需要多次调用该方法。

相关回调

调用该方法后,可能会触发插件事件回调 OnExtensionEventWithContext,具体触发逻辑与插件本身相关。

参数

参数名描述
provider

提供插件的服务商名称。

extension

插件的名称。

key

插件属性的 Key。

value

插件属性 Key 对应的值。

type

插件的媒体源类型。详见 MEDIA_SOURCE_TYPE。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。详见错误码了解详情和解决建议。

所属接口类

SetExtensionProviderProperty

设置插件服务商的属性。

C#
public abstract int SetExtensionProviderProperty(string provider, string key, string value);

你可以调用该方法设置插件服务商的属性,并根据服务商的类型初始化相关参数。

调用时机

请在调用 RegisterExtension 之后、EnableExtension 之前调用该方法。

调用限制

如果要设置多个插件服务商的属性,需要多次调用该方法。

参数

参数名描述
provider

提供插件的服务商名称。

key

插件属性的 Key。

value

插件属性 Key 对应的值。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0: 方法调用成功。
  • < 0: 方法调用失败。详见错误码了解详情和解决建议。

所属接口类