插件

  • Flutter

更新时间不可用

enableExtension

启用/禁用插件。

Dart
Future<void> enableExtension(
    {required String provider,
    required String extension,
    bool enable = true,
    MediaSourceType type = MediaSourceType.unknownMediaSource});

注:

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

调用时机

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

相关回调

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

参数

参数名描述
provider

提供插件的服务商名称。

extension

插件的名称。

enable

是否启用插件:

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

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

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

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

getExtensionProperty

获取插件的详细信息。

Dart
Future<String> getExtensionProperty(
      {required String provider,
      required String extension,
      required String key,
      required int bufLen,
      MediaSourceType type = MediaSourceType.unknownMediaSource});

调用时机

加入频道前后均可调用。

参数

参数名描述
provider

提供插件的服务商名称。

extension

插件的名称。

key

插件属性的 Key。

type

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

bufLen

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

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

返回值

  • 方法调用成功,则返回插件信息。
  • 方法调用失败,则返回空字符串。

所属接口类

loadExtensionProvider

加载插件。

Dart
Future<void> loadExtensionProvider(
      {required String path, bool unloadAfterUse = false});

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

注: 如果要加载多个插件,需要多次调用该方法。 该方法仅适用于 Windows 和 Android。

调用时机

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

参数

参数名描述
path

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

unloadAfterUse

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

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

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

registerExtension

注册插件。

Dart
Future<void> registerExtension(
      {required String provider,
      required String extension,
      MediaSourceType type = MediaSourceType.unknownMediaSource});

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

注:

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

调用时机

  • 建议你在初始化 RtcEngine 后、加入频道前调用该方法。
  • 对于视频相关插件(例如美颜插件),需要在启用视频模块(enableVideo/enableLocalVideo)之前调用该方法。
  • 调用该方法前,需要先调用 loadExtensionProvider 加载插件。

参数

参数名描述
provider

提供插件的服务商名称。

extension

插件的名称。

type

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

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

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setExtensionProperty

设置插件的属性。

Dart
Future<void> setExtensionProperty(
    {required String provider,
    required String extension,
    required String key,
    required String value,
    MediaSourceType type = MediaSourceType.unknownMediaSource});

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

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

调用时机

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

相关回调

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

参数

参数名描述
provider

提供插件的服务商名称。

extension

插件的名称。

key

插件属性的 Key。

value

插件属性 Key 对应的值。

type

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

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

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

setExtensionProviderProperty

设置插件服务商的属性。

Dart
Future<void> setExtensionProviderProperty(
    {required String provider, required String key, required String value});

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

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

调用时机

请在调用 registerExtension 之后、enableExtension 之前调用该方法。

参数

参数名描述
provider

提供插件的服务商名称。

key

插件属性的 Key。

value

插件属性 Key 对应的值。

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

返回值

方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。

所属接口类

onExtensionErrorWithContext

插件出错回调。

Dart
final void Function(ExtensionContext context, int error, String message)?
    onExtensionErrorWithContext;

启用插件失败或者插件运行出错时,插件会触发该回调并报告错误码和错误原因。

参数

参数名描述
context

插件上下文信息,详见 ExtensionContext。

error

错误码。详见插件服务商提供的插件文档。

message

错误原因。详见插件服务商提供的插件文档。

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

所属接口类

onExtensionEventWithContext

插件事件回调。

Dart
final void Function(ExtensionContext context, String key, String value)?
    onExtensionEventWithContext;

为监听插件事件,你需要注册该回调。

参数

参数名描述
context

插件上下文信息,详见 ExtensionContext。

key

插件属性的 Key。

value

插件属性 Key 对应的值。

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

所属接口类

onExtensionStartedWithContext

插件已启用成功回调。

Dart
final void Function(ExtensionContext context)? onExtensionStartedWithContext;

成功启用插件后会触发该回调。

参数

参数名描述
context

插件上下文信息,详见 ExtensionContext。

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

所属接口类

onExtensionStoppedWithContext

插件已禁用回调。

Dart
final void Function(ExtensionContext context)? onExtensionStoppedWithContext;

成功禁用插件后会触发该回调。

参数

参数名描述
context

插件上下文信息,详见 ExtensionContext。

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

所属接口类