插件
- C++
更新时间不可用
enableExtension
启用或禁用插件。
virtual int enableExtension(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, bool enable = true) = 0;通过调用该方法,你可以在不更改处理流程的情况下动态启用或禁用插件。例如,启用或禁用 Extension_A 表示数据将被 Extension_A 处理或绕过。
注: 出于兼容性考虑,如果你尚未调用 registerExtension,enableExtension 会自动注册指定的插件。建议你显式调用 registerExtension。
参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
getExtensionProperty
获取扩展属性。
virtual int getExtensionProperty(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, const char* key, char* value, int buf_len) = 0;参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
loadExtensionProvider
加载扩展。
virtual int loadExtensionProvider(const char* path, bool unload_after_use = false) = 0;该方法用于将 SDK 外部的扩展(例如来自云市场或 SDK 扩展)加载到 SDK 中。
注: 如果你需要加载多个扩展,需要多次调用该方法。仅适用于 Windows 和 Android 平台。
调用时机
请确保在调用该方法前已初始化 IRtcEngine。
参数
| 参数名 | 描述 |
|---|---|
path | |
unload_after_use |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
registerExtension
注册一个扩展。
virtual int registerExtension(const char* provider, const char* extension, agora::media::MEDIA_SOURCE_TYPE type = agora::media::UNKNOWN_MEDIA_SOURCE) = 0;对于 SDK 外部的扩展(例如来自云市场和 SDK 扩展),你需要在调用该方法前先加载它们。对于 SDK 内部的扩展(即包含在完整 SDK 包中的扩展),在初始化 IRtcEngine 后会自动加载并注册。
注:
- 如果你想注册多个扩展,需要多次调用此方法。
- SDK 中不同扩展的数据处理顺序由注册顺序决定,即先注册的扩展会优先处理数据。
调用时机
声网建议你在初始化 IRtcEngine 后、加入频道前调用此方法。
- 对于视频扩展(如美颜特效扩展),你需要在调用 enableVideo 或 enableLocalVideo 启用视频模块后再调用此方法。
- 在调用此方法前,你需要先调用 loadExtensionProvider 加载扩展。
参数
| 参数名 | 描述 |
|---|---|
provider | |
extension | |
type | 扩展的数据源类型,详见 MEDIA_SOURCE_TYPE。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -3:扩展库未加载。声网建议你检查动态库的存储位置或名称。
所属接口类
setExtensionProperty
设置插件的属性。
virtual int setExtensionProperty(const char* provider, const char* extension, const ExtensionInfo& extensionInfo, const char* key, const char* value) = 0;参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
setExtensionProviderProperty
设置扩展提供方的属性。
virtual int setExtensionProviderProperty(const char* provider, const char* key, const char* value) = 0;调用该方法可设置扩展提供方的属性,并根据提供方的类型初始化相关参数。
注: 如果你想为多个扩展设置扩展提供方的属性,需要多次调用该方法。
调用时机
在调用 enableExtension 之前,调用 registerExtension 之后。
参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
onExtensionErrorWithContext
扩展运行异常时触发的回调。
virtual void onExtensionErrorWithContext(const ExtensionContext &context, int error, const char* message)当扩展启用失败或运行时发生错误时,会触发该回调,并返回错误码和错误原因。
参数
| 参数名 | 描述 |
|---|---|
context | 扩展的上下文信息。详见 ExtensionContext。 |
error | |
message |
所属接口类
onExtensionEventWithContext
扩展事件回调。
virtual void onExtensionEventWithContext(const ExtensionContext &context, const char* key, const char* value)在扩展运行期间监听事件时,你需要注册该回调。
参数
| 参数名 | 描述 |
|---|---|
context | 扩展的上下文信息。详见 ExtensionContext。 |
key | |
value |
所属接口类
onExtensionStartedWithContext
onExtensionStartedWithContext 回调。当扩展启用成功时触发。
virtual void onExtensionStartedWithContext(const ExtensionContext &context)参数
| 参数名 | 描述 |
|---|---|
context | 扩展的上下文信息。详见 ExtensionContext。 |
所属接口类
onExtensionStoppedWithContext
onExtensionStoppedWithContext 回调:扩展被禁用时触发。
virtual void onExtensionStoppedWithContext(const ExtensionContext &context)触发时机
当扩展被成功禁用后触发该回调。
参数
| 参数名 | 描述 |
|---|---|
context | 扩展的上下文信息。详见 ExtensionContext。 |