logo
当前页

ZegoExpressEngine

ZegoExpressEngine

Declared in ZegoExpressEngine.h

方法

createEngineWithProfile:eventHandler:

static
createEngineWithProfile:eventHandler:
+ (ZegoExpressEngine *)createEngineWithProfile:(ZegoEngineProfile *) profile eventHandler:(nullable id<ZegoEventHandler>) eventHandler;
创建 ZegoExpressEngine 单例对象并初始化 SDK。
Declared in ZegoExpressEngine.h

参数

名称类型描述
profileZegoEngineProfile *用来创建引擎的基础配置信息。
eventHandlernullable id<ZegoEventHandler>事件通知回调。传 [nil] 则意味着不接收任何回调通知,之后也可通过 [setEventHandler] 进行设置。如果重复调用 [createEngine] 且第二次调用前未调用 [destroyEngine] 函数销毁引擎,则 eventHandler 不会被更新。

详情

创建 ZegoExpressEngine 单例对象并初始化 SDK。

  • 调用时机:SDK 其他实例方法调用之前。
  • 支持版本:2.14.0 及以上。
  • 使用限制:无。
  • 注意事项:SDK 只支持创建一个实例,如需重复调用 [createEngine] ,则需在第二次调用 [createEngine] 前先调用 [destroyEngine] 函数销毁引擎,否则再次调用此函数返回的都是上次创建的对象。

返回值

引擎单例对象。

destroyEngine:

static
destroyEngine:
+ (void)destroyEngine:(nullable ZegoDestroyCompletionCallback) callback;
销毁 ZegoExpressEngine 单例对象并反初始化 SDK。
Declared in ZegoExpressEngine.h

参数

名称类型描述
callbacknullable ZegoDestroyCompletionCallback销毁引擎完成的通知回调,可监听此回调以确保设备硬件资源(麦克风、扬声器、摄像头等)被释放完成,若开发者不关注引擎资源的释放时机,该参数可传[nil]。

详情

销毁 ZegoExpressEngine 单例对象并反初始化 SDK。

  • 调用时机:当不再使用 SDK 时,可以通过本接口释放 SDK 使用的资源。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:使用 [createEngine] 创建单例后,如果单例对象未被创建或已被销毁,调用此函数时,不会收到相关回调。

sharedEngine

static
sharedEngine
+ (ZegoExpressEngine *)sharedEngine;
获取引擎单例对象。
Declared in ZegoExpressEngine.h

如果引擎尚未创建或已经销毁,将返回无法使用的引擎对象。

  • 调用时机:创建引擎之后,销毁引擎之前。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。

引擎单例对象

setEngineConfig:

static
setEngineConfig:
+ (void)setEngineConfig:(ZegoEngineConfig *) config;
设置引擎进阶配置。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoEngineConfig *引擎进阶配置

详情

用于开启进阶功能。

  • 调用时机:不同的配置有不同的调用时机要求,详情可咨询 ZEGO 技术支持。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。

setLogConfig:

static
setLogConfig:
+ (void)setLogConfig:(ZegoLogConfig *) config;
设置日志配置。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoLogConfig *日志配置。

详情

开发者当需要自定义日志文件大小和路径时,需要调用此函数来完成配置。

  • 调用时机:必须在调用 [createEngine] 之前设置才生效,若在 [createEngine] 之后设置,则在 [destroyEngine] 后的下一次 [createEngine] 时生效。
  • 支持版本:2.3.0 及以上。
  • 使用限制:无。
  • 注意事项:一旦调用了本接口,通过 [setEngineConfig] 设置日志大小和路径的方式将无效。因此,不建议使用[setEngineConfig] 设置日志大小和路径 。

setLocalProxyConfig:enable:

static
setLocalProxyConfig:enable:
+ (void)setLocalProxyConfig:(NSArray<ZegoProxyInfo *> *) proxyList enable:(BOOL) enable;
设置本地代理配置
Declared in ZegoExpressEngine.h

参数

名称类型描述
proxyListNSArray<ZegoProxyInfo *> *代理详细信息。
enableBOOL是否开启代理。

详情

设置本地代理配置。

  • 调用时机:必须在调用 [createEngine] 之前设置才生效,否则会失败。
  • 支持版本:3.1.0 及以上。
  • 使用限制:[createEngine] 后无法更改代理。
  • 注意事项:无。

setCloudProxyConfig:token:enable:

static
setCloudProxyConfig:token:enable:
+ (void)setCloudProxyConfig:(NSArray<ZegoProxyInfo *> *) proxyList token:(NSString *) token enable:(BOOL) enable;
设置云代理配置
Declared in ZegoExpressEngine.h

参数

名称类型描述
proxyListNSArray<ZegoProxyInfo *> *代理详细信息。
tokenNSString *鉴权信息。如果使用 AppSign 鉴权可忽略,填空。
enableBOOL是否开启代理。

详情

设置云代理配置。

  • 调用时机:必须在调用 [createEngine] 之前设置才生效,否则会失败。
  • 支持版本:3.1.0 及以上。
  • 使用限制:[createEngine] 后无法更改代理。
  • 注意事项:无。

setLicense:

static
setLicense:
+ (void)setLicense:(NSString *) license;
设置 License 鉴权。
Declared in ZegoExpressEngine.h

参数

名称类型描述
licenseNSString *鉴权信息。

详情

当使用 License 鉴权收费的时候,需要调用此函数来完成配置。

  • 调用时机:必须在调用 [createEngine] 之前设置才生效,否则会失败。
  • 支持版本:3.5.0 及以上。
  • 使用限制:不支持中途更改。
  • 注意事项:无。

setRoomMode:

static
setRoomMode:
+ (void)setRoomMode:(ZegoRoomMode) mode;
设置房间模式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoRoomMode房间模式。详情描述:用于设置房间模式。业务场景:当需要同时进入多个房间进行推拉流时,可以通过本接口开启多房间模式。是否必填:是。默认值:ZEGO_ROOM_MODE_SINGLE_ROOM。

详情

开发者需要使用多房间功能时,需要调用此函数来完成配置。

  • 调用时机:必须在调用 [createEngine] 之前设置才生效,否则会失败。
  • 支持版本:2.9.0 及以上。
  • 使用限制:如果需要使用多房间功能,请与即构技术支持联系配置服务端支持。
  • 注意事项:无。

setGeoFence:area:

static
setGeoFence:area:
+ (void)setGeoFence:(ZegoGeoFenceType) type area:(NSArray<NSNumber *> *) area;
设置地理围栏。
Declared in ZegoExpressEngine.h

参数

名称类型描述
typeZegoGeoFenceType地理围栏类型。详情描述:用于设置地理围栏类型。
areaNSArray<NSNumber *> *地理围栏区域列表。详情描述:用于描述地理围栏范围。

详情

开发者需要使用地理围栏功能时,需要调用此函数来完成配置。

  • 调用时机:必须在调用 [createEngine] 之前设置才生效,否则会失败。
  • 支持版本:3.4.0 及以上。
  • 使用限制:如果需要使用地理围栏功能,请联系 ZEGO 技术支持。
  • 注意事项:无。

getVersion

static
getVersion
+ (NSString *)getVersion;
获取 SDK 版本号。
Declared in ZegoExpressEngine.h

在 SDK 在运行过程中若遇到异常,可将问题、日志等信息提交 ZEGO 技术人员定位与排障。开发者也可通过该 API 收集当前 SDK 版本信息,便于 App 运营统计以及关联问题。

  • 调用时机:任意时刻。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:无。

SDK 版本号。

setApiCalledCallback:

static
setApiCalledCallback:
+ (void)setApiCalledCallback:(nullable id<ZegoApiCalledEventHandler>) callback;
设置方法执行结果回调。
Declared in ZegoExpressEngine.h

参数

名称类型描述
callbacknullable id<ZegoApiCalledEventHandler>方法执行结果的回调。

详情

设置调用方法执行结果的回调,设置后可以获取到每次执行 ZEGO SDK 方法结果的详细信息。

  • 调用时机:任意时刻。
  • 支持版本:2.3.0 及以上。
  • 使用限制:无。
  • 注意事项:建议开发者在需要获取每个接口的调用结果时才调用本接口,比如在排查、追踪问题的情况,一般情况下开发者不需要关注本接口。

isFeatureSupported:

static
isFeatureSupported:
+ (BOOL)isFeatureSupported:(ZegoFeatureType) featureType;
查询当前 SDK 是否支持指定的功能特性。
Declared in ZegoExpressEngine.h

参数

名称类型描述
featureTypeZegoFeatureType要查询的功能特性类型。

详情

由于 SDK 支持特性裁包,部分特性可能已被裁剪; 可以使用此函数快速判断当前 SDK 是否支持指定的功能特性,例如,查询是否支持媒体播放器功能。

  • 调用时机:任意时刻。
  • 支持版本:2.22.0 及以上。

返回值

是否支持指定功能特性。true 表示支持;false 表示不支持。

submitLog

static
submitLog
+ (void)submitLog;
上传日志到 ZEGO 服务器。
Declared in ZegoExpressEngine.h

默认情况下,SDK 会在 App 默认目录创建日志文件并打印,每个日志文件默认最大 5MB,三个日志文件循环覆盖写入。当调用此函数时 SDK 会自动将日志文件打包并上传到 ZEGO 服务器。

  • 业务场景:开发者可在 App 提供业务上的“反馈”渠道,当用户反馈的问题属于 ZEGO SDK 时,可调用此函数将 SDK 的本地日志信息上传,并联系 ZEGO 技术支持协助定位用户问题。
  • 调用时机:无。
  • 支持版本:3.7.0 及以上。
  • 使用限制:限频每分钟1次。
  • 注意事项:1.在调用本接口上传日志后,如果过快的调用 [destroyEngine] 或 退出 App,则可能存在失败的情况。建议等待几秒,等收到上传成功回调后,再调用 [destroyEngine] 或 退出 App。2.支持在 [createEngine] 之前调用,如果之前调用过 [createEngine],就会以最后一次的 appid 来上传日志,否则会等待下次 [createEngine] 才上传日志。

createEngineWithAppID:appSign:isTestEnv:scenario:eventHandler:

static
createEngineWithAppID:appSign:isTestEnv:scenario:eventHandler:
deprecated
+ (ZegoExpressEngine *)createEngineWithAppID:(unsigned int) appID appSign:(NSString *) appSign isTestEnv:(BOOL) isTestEnv scenario:(ZegoScenario) scenario eventHandler:(nullable id<ZegoEventHandler>) eventHandler;
【已废弃】创建 ZegoExpressEngine 单例对象并初始化 SDK。此函数在 2.14.0 版本及以上已废弃,请使用不带 [isTestEnv] 参数的同名函数代替。请参考 [测试环境废弃说明](https://doc-zh.zego.im/article/13100)
Declared in ZegoExpressEngine.h

参数

名称类型描述
appIDunsigned intZEGO 为开发者签发的应用 ID,请从 ZEGO 管理控制台 https://console-express.zego.im 申请。appID 取值范围 0~4294967295。
appSignNSString *每个 AppID 对应的应用签名,请从 ZEGO 管理控制台申请。该参数为包含 64 个字符的字符串,字符取值范围:'0' ~ '9', 'a' ~ 'z'。例:"9dc9a25bh2f2137446897071c8c033fa33b91c3dd2a85e0c000ae82c0dad3"。2.17.0 及以上版本 appSign 允许传空或者不传。如果传空或者不传,则必须在调用 [loginRoom] 接口登录房间时将 token 填入 [ZegoRoomConfig] 参数中,用于鉴权。token 的生成方式请参考 使用 Token 鉴权
isTestEnvBOOL【已废弃】为提供更便捷、更标准的服务,ZEGO 已统一环境概念,2021-11-16 之后,不再有正式环境/测试环境之分,2021-11-16 及之前在 ZEGO 控制台 创建项目的用户,可参考 测试环境废弃说明 进行 SDK 升级和调整相关代码。
scenarioZegoScenario房间场景,SDK 会针对指定的场景的做一些音视频配置优化以达成在此场景下最优的效果。指定场景后,开发者可以使用 [setRoomScenario] 来实现在不销毁引擎 [destroyEngine] 的前提下切换其他场景。指定场景后,开发者可以调用其他 API 来继续调整音视频配置。各个场景之间的差异以及如何选择合适的场景请参考 https://doc-zh.zego.im/article/16316
eventHandlernullable id<ZegoEventHandler>事件通知回调。传 [nil] 则意味着不接收任何回调通知,之后也可通过 [setEventHandler] 进行设置。如果重复调用 [createEngine] 且第二次调用前未调用 [destroyEngine] 函数销毁引擎,则 eventHandler 不会被更新。

详情

创建 ZegoExpressEngine 单例对象并初始化 SDK。

  • 调用时机:SDK 其他实例方法调用之前。
  • 支持版本:1.1.0 ~ 2.13.1,此函数在 2.14.0 版本及以上已废弃,请使用不带 [isTestEnv] 参数的同名函数代替。
  • 使用限制:无。
  • 注意事项:SDK 只支持创建一个实例,如需重复调用 [createEngine] ,则需在第二次调用 [createEngine] 前先调用 [destroyEngine] 函数销毁引擎,否则再次调用此函数返回的都是上次创建的对象。
已废弃
此函数在 2.14.0 版本及以上已废弃,请使用不带 [isTestEnv] 参数的同名函数代替。

返回值

引擎单例对象

setEventHandler:

setEventHandler:
- (void)setEventHandler:(nullable id<ZegoEventHandler>) eventHandler;
设置事件通知回调。
Declared in ZegoExpressEngine.h

参数

名称类型描述
eventHandlernullable id<ZegoEventHandler>事件通知回调。传 [nil] 则清空已设置的回调。开发者应根据自身业务场景,监听相应的回调。SDK 主要的回调函数都在这里。

详情

设置事件通知回调,用于监听如 engine 状态变化、room 状态变化等回调。

  • 调用时机:在 [createEngine] 后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:调用此函数或 [createEngine] 设置了回调后,除非调用此函数清空回调,否则再次设置一个回调将不生效。在调用 [destroyEngine] 销毁引擎之后,该回调会失效,在下一次 [createEngine] 后需要重新设置。

setRoomScenario:

setRoomScenario:
- (void)setRoomScenario:(ZegoScenario) scenario;
设置房间场景。
Declared in ZegoExpressEngine.h

参数

名称类型描述
scenarioZegoScenario房间场景。

详情

开发者可设置房间的使用场景,SDK 会针对不同的场景采取不同的优化策略,以便获取更优的效果;此函数的作用与 [createEngine] 的 [profile] 配置中的 [scenario] 参数完全一致。

  • 业务场景:此函数适用于多种音视频业务场景的 App,例如有 1v1 音视频通话场景和秀场直播场景;通过此函数可以实现在不销毁引擎 [destroyEngine] 的前提下切换场景。
  • 调用时机:必须在调用 [createEngine] 之后且调用 [loginRoom] 之前设置。
  • 支持版本:3.0.0 及以上。
  • 使用限制:一旦登录了房间就不再允许修改房间场景,若需要修改场景需要先退出房间,若登录了多个房间则需要退出所有房间后才能修改。
  • 注意事项: 1. 同一个房间内的用户建议使用同一种房间场景以获得最佳效果。 2. 设置场景会影响音视频码率、帧率、分辨率、编码类型、音频设备模式、路由、流控、3A、耳返等音视频配置,若开发者有特殊需求可以在设置房间场景后再调用其他各种 API 来设置上述配置。 3. 调用此函数将覆盖 [createEngine] 时指定的场景或上一次调用此函数设置的场景。 4. 调用此函数将覆盖你通过 [setVideoConfig], [setAudioConfig] 等 API 设置的音视频相关配置,因此建议先第一时间设置场景再通过其他 API 调整音视频配置。

uploadLog

uploadLog
- (void)uploadLog;
上传日志到 ZEGO 服务器。
Declared in ZegoExpressEngine.h

默认情况下,SDK 会在 App 默认目录创建日志文件并打印,每个日志文件默认最大 5MB,三个日志文件循环覆盖写入。当调用此函数时 SDK 会自动将日志文件打包并上传到 ZEGO 服务器。

  • 业务场景:开发者可在 App 提供业务上的“反馈”渠道,当用户反馈的问题属于 ZEGO SDK 时,可调用此函数将 SDK 的本地日志信息上传,并联系 ZEGO 技术支持协助定位用户问题。
  • 调用时机:在 [createEngine] 后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:限频每分钟1次。
  • 注意事项:1.在调用本接口上传日志后,如果过快的调用 [destroyEngine] 或 退出 App,则可能存在失败的情况。建议等待几秒,等收到上传成功回调后,再调用 [destroyEngine] 或 退出 App。2.如果希望在 [createEngine] 之前调用,请调用 [submitLog] 接口。

uploadLog:

uploadLog:
- (void)uploadLog:(nullable ZegoUploadLogResultCallback) callback;
上传日志到 ZEGO 服务器,带回调。
Declared in ZegoExpressEngine.h

参数

名称类型描述
callbacknullable ZegoUploadLogResultCallback日志上传结果回调。

详情

默认情况下,SDK 会在 App 默认目录创建日志文件并打印,每个日志文件默认最大 5MB,三个日志文件循环覆盖写入。当调用此函数时 SDK 会自动将日志文件打包并上传到 ZEGO 服务器。

  • 业务场景:开发者可在 App 提供业务上的“反馈”渠道,当用户反馈的问题属于 ZEGO SDK 时,可调用此函数将 SDK 的本地日志信息上传,并联系 ZEGO 技术支持协助定位用户问题。
  • 调用时机:在 [createEngine] 后。
  • 支持版本:2.4.0 及以上。
  • 使用限制:限频每分钟1次。
  • 注意事项:1. 在调用本接口上传日志后,如果过快的调用 [destroyEngine] 或 退出 App,则可能存在失败的情况。建议等待几秒,等收到上传成功回调后,再调用 [destroyEngine] 或 退出 App。2.如果希望在 [createEngine] 之前调用,请调用 [submitLog] 接口。

enableDebugAssistant:

enableDebugAssistant:
- (void)enableDebugAssistant:(BOOL) enable;
开启调试助手。注意,请勿在线上版本开启此功能!仅在开发阶段使用!
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启调试助手。

详情

开启后,SDK 将会打印日志到控制台,并且将会在 SDK 其他函数的调用发生问题时 UI 弹窗提示错误。

  • 默认值:默认不开启。
  • 调用时机:可在创建引擎 [createEngine] 后立刻调用此函数。
  • 平台差异:弹窗提示功能仅支持 Android / iOS / macOS / Windows,而输出控制台日志功能支持全平台。
  • 支持版本:2.17.0 及以上。
  • 使用限制:无。
  • 注意事项:请务必在 App 发布前确认此功能已关闭,以避免在正式版本中当发生错误时弹出 UI 提示。建议将此函数的 [enable] 参数与 App 的 DEBUG 变量相关联,即仅在 DEBUG 环境下开启调试助手。

callExperimentalAPI:

callExperimentalAPI:
- (NSString *)callExperimentalAPI:(NSString *) params;
调用实验性 API。
Declared in ZegoExpressEngine.h

参数

名称类型描述
paramsNSString *传入的参数,格式为 JSON 字符串,具体可咨询 ZEGO 技术支持。

详情

ZEGO 通过此 API 提供 RTC 业务中的部分技术预览或特别定制功能,需要获取功能的使用或详情其详情可咨询 ZEGO 技术支持。

  • 调用时机:在 [createEngine] 后。
  • 支持版本:2.7.0 及以上。

返回值

返回的参数,格式为 JSON 字符串,具体可咨询 ZEGO 技术支持。

loginRoom:user:

loginRoom:user:
- (void)loginRoom:(NSString *) roomID user:(ZegoUser *) user;
登录房间,推拉流前必须登录房间。
Declared in ZegoExpressEngine.h

参数

名称类型描述
roomIDNSString *房间 ID,不得为空,最大长度小于 128 字节的字符串。
注意事项:
1.房间 ID 由您自己定义。
2. 仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', ''。
3. 如果需要与 Web SDK 互通,请不要使用 '%'。
userZegoUser *用户对象实例,配置用户 ID、用户名。 注意事项:注意用户 ID 需要在相同的 appID 下全局唯一,否则会出现后登录的用户踢掉先登录的用户的情况。

详情

如果房间不存在,[loginRoom] 会创建并登录房间。 SDK 用"房间"概念来组织用户,用户必须首先登录某个房间,才能进行一系列关键操作,比如推流 [startPublishingStream]、拉流[startPlayingStream]、收发广播消息 [sendBroadcastMessage] 等。

  • 业务场景:在同一个房间内用户可以进行直播、音视频通话等。
  • 调用时机:在 [createEngine] 初始化 SDK 之后调用该函数。
  • 相关回调: 1. 当用户开始登录房间、登录房间成功或登录房间失败后,将会触发 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调通知开发者当前用户连接房间的状态。 2. 登录同一个房间的不同用户可以得到以相同房间为单位的房间信令通知(例如:[onRoomUserUpdate], [onRoomStreamUpdate] 等),一个房间内的用户收不到另一个房间房间信令的通知。 3. 如果由于网络质量原因导致网络临时中断,SDK 内部会自动进行重连。可通过监听 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调获取本端当前房间连接状态的变化情况,同时同房间其他用户会接收到 [onRoomUserUpdate] 回调通知。详情请参考 https://doc-zh.zego.im/faq/reconnect 4. 一个房间发的消息(例如 [setStreamExtraInfo], [sendBroadcastMessage], [sendBarrageMessage], [sendCustomCommand] 等)在别的房间无法收到(例如 [onRoomStreamExtraInfoUpdate], [onIMRecvBroadcastMessage], [onIMRecvBarrageMessage], [onIMRecvCustomCommand] 等),目前 ZegoExpressEngine 未提供跨房间消息的能力。开发者可以集成 IM 的 SDK 来实现。
  • 相关接口: 1. 可调用 [logoutRoom] 退出登录,如果没有退出登录而重复调用登录接口(roomID 和 user 保持相同的情况下),控制台会报错,打印错误码 1002001。 2. 如果需要登录多个房间,请在创建引擎前通过 [ZegoRoomMode] 选择多房间模式,然后调用 [loginRoom] 接口登录多房间。 3. 调用 [destroyEngine] 也会使用户自动退出登录。
  • 支持版本:1.1.0 及以上。
  • 使用限制:同一房间登录接口的调用频率 (QPS) 有一定限制,详情查阅 https://doc-zh.zego.im/article/7581 或联系 ZEGO 技术支持。
  • 注意事项: 1. 使用不同 appID 的 App 不能互通。 2. SDK 支持拉相同 appID 下非同一个房间的流,即跨房间拉流。由于 SDK 的房间信令的相关回调通知是以相同房间为单位,当开发者想要跨房间拉流时,开发者需自行维护相关的消息及信令通知。 3. 强烈建议 userID 与业务 APP 的用户 ID 一一对应,即一个 userID 与一个真实用户是固定且唯一的,而不应该是以随机的 userID 的方式传给 SDK 的方式。因为唯一且固定的 userID 可以让 ZEGO 技术人员快速定位线上问题。 4. 首次因网络原因登录失败或者房间断开连接之后,SDK 重连默认时间为 20min。 隐私保护申明:请勿在此接口填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。

loginRoom:user:config:

loginRoom:user:config:
- (void)loginRoom:(NSString *) roomID user:(ZegoUser *) user config:(ZegoRoomConfig *) config;
使用配置进阶属性的方式登录房间,推拉流前必须登录房间。
Declared in ZegoExpressEngine.h

参数

名称类型描述
roomIDNSString *房间 ID,不得为空,最大长度小于 128 字节的字符串。
注意事项:
1.房间 ID 由您自己定义。
2. 仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', ''。
3. 如果需要与 Web SDK 互通,请不要使用 '%'。
userZegoUser *用户对象实例,配置用户 ID、用户名。 注意事项:注意用户 ID 需要在相同的 appID 下全局唯一,否则会出现后登录的用户踢掉先登录的用户的情况。
configZegoRoomConfig *房间进阶配置。

详情

如果房间不存在,[loginRoom] 会创建并登录房间。 SDK 用"房间"概念来组织用户,用户必须首先登录某个房间,才能进行一系列关键操作,比如推流 [startPublishingStream]、拉流[startPlayingStream]、收发广播消息 [sendBroadcastMessage] 等。为了防止 App 被恶意用户模拟登录,可以在登录房间之前加上鉴权验证,即 [config] 参数传入的 ZegoRoomConfig 对象中的 [token] 参数。

  • 业务场景:在同一个房间内用户可以进行直播、音视频通话等。
  • 调用时机:在 [createEngine] 初始化 SDK 之后调用该函数。
  • 相关回调: 1. 当用户开始登录房间、登录房间成功或登录房间失败后,将会触发 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调通知开发者当前用户连接房间的状态。 2. 登录同一个房间的不同用户可以得到以相同房间为单位的房间信令通知(例如:[onRoomUserUpdate], [onRoomStreamUpdate] 等),一个房间内的用户收不到另一个房间房间信令的通知。 3. 如果由于网络质量原因导致网络临时中断,SDK 内部会自动进行重连。可通过监听 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调获取本端当前房间连接状态的变化情况,同时同房间其他用户会接收到 [onRoomUserUpdate] 回调通知。详情请参考 https://doc-zh.zego.im/faq/reconnect 4. 一个房间发的消息(例如 [setStreamExtraInfo], [sendBroadcastMessage], [sendBarrageMessage], [sendCustomCommand] 等)在别的房间无法收到(例如 [onRoomStreamExtraInfoUpdate], [onIMRecvBroadcastMessage], [onIMRecvBarrageMessage], [onIMRecvCustomCommand] 等),目前 ZegoExpressEngine 未提供跨房间消息的能力。开发者可以集成 IM 的 SDK 来实现。
  • 相关接口: 1. 可调用 [logoutRoom] 退出登录,如果没有退出登录而重复调用登录接口(roomID 和 user 保持相同的情况下),控制台会报错,打印错误码 1002001。 2. 如果需要登录多个房间,请在创建引擎前通过 [ZegoRoomMode] 选择多房间模式,然后调用 [loginRoom] 接口登录多房间。 3. 调用 [destroyEngine] 也会使用户自动退出登录。
  • 支持版本:1.1.0 及以上。
  • 使用限制:同一房间登录接口的调用频率 (QPS) 有一定限制,详情查阅 https://doc-zh.zego.im/article/7581 或联系 ZEGO 技术支持。
  • 注意事项: 1. 使用不同 appID 的 App 不能互通。 2. SDK 支持拉相同 appID 下非同一个房间的流,即跨房间拉流。由于 SDK 的房间信令的相关回调通知是以相同房间为单位,当开发者想要跨房间拉流时,开发者需自行维护相关的消息及信令通知。 3. 强烈建议 userID 与业务 APP 的用户 ID 一一对应,即一个 userID 与一个真实用户是固定且唯一的,而不应该是以随机的 userID 的方式传给 SDK 的方式。因为唯一且固定的 userID 可以让 ZEGO 技术人员快速定位线上问题。 4. 首次因网络原因登录失败或者房间断开连接之后,SDK 重连默认时间为 20min。 隐私保护申明:请勿在此接口填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。

loginRoom:user:config:callback:

loginRoom:user:config:callback:
- (void)loginRoom:(NSString *) roomID user:(ZegoUser *) user config:(ZegoRoomConfig *) config callback:(ZegoRoomLoginCallback) callback;
使用带配置进阶属性的方式登录房间,通过回调参数返回登录结果,推拉流前必须登录房间。
Declared in ZegoExpressEngine.h

参数

名称类型描述
roomIDNSString *房间 ID,不得为空,最大长度小于 128 字节的字符串。
注意事项:
1.房间 ID 由您自己定义。
2. 仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', ''。
3. 如果需要与 Web SDK 互通,请不要使用 '%'。
userZegoUser *用户对象实例,配置用户 ID、用户名。 注意事项:注意用户 ID 需要在相同的 appID 下全局唯一,否则会出现后登录的用户踢掉先登录的用户的情况。
configZegoRoomConfig *房间进阶配置。
callbackZegoRoomLoginCallback本次登录结果的回调,如果需要详细的房间状态,请关注 [onRoomStateChanged] 回调。是否必填:否。默认值:nil。注意事项:如果因为网络问题导致多次重试连接,重试状态将不会通过此回调抛出。

详情

如果房间不存在,[loginRoom] 会创建并登录房间。SDK 用"房间"概念来组织用户,用户必须首先登录某个房间,才能进行一系列关键操作,比如推流 [startPublishingStream]、拉流[startPlayingStream]、收发广播消息 [sendBroadcastMessage] 等。为了防止 App 被恶意用户模拟登录,可以在登录房间之前加上鉴权验证,即 [config] 参数传入的 ZegoRoomConfig 对象中的 [token] 参数。

  • 业务场景:在同一个房间内用户可以进行直播、音视频通话等。
  • 调用时机:在 [createEngine] 初始化 SDK 之后调用该函数。
  • 相关回调: 1. 当用户开始登录房间、登录房间成功或登录房间失败后,将会触发 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调通知开发者当前用户连接房间的状态。 2. 登录同一个房间的不同用户可以得到以相同房间为单位的房间信令通知(例如:[onRoomUserUpdate], [onRoomStreamUpdate] 等),一个房间内的用户收不到另一个房间房间信令的通知。 3. 如果由于网络质量原因导致网络临时中断,SDK 内部会自动进行重连。可通过监听 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调获取本端当前房间连接状态的变化情况,同时同房间其他用户会接收到 [onRoomUserUpdate] 回调通知。详情请参考 https://doc-zh.zego.im/faq/reconnect 4. 一个房间发的消息(例如 [setStreamExtraInfo], [sendBroadcastMessage], [sendBarrageMessage], [sendCustomCommand] 等)在别的房间无法收到(例如 [onRoomStreamExtraInfoUpdate], [onIMRecvBroadcastMessage], [onIMRecvBarrageMessage], [onIMRecvCustomCommand] 等),目前 ZegoExpressEngine 未提供跨房间消息的能力。开发者可以集成 IM 的 SDK 来实现。
  • 相关接口: 1. 可调用 [logoutRoom] 退出登录,如果没有退出登录而重复调用登录接口(roomID 和 user 保持相同的情况下),控制台会报错,打印错误码 1002001。 2. 如果需要登录多个房间,请在创建引擎前通过 [ZegoRoomMode] 选择多房间模式,然后调用 [loginRoom] 接口登录多房间。 3. 调用 [destroyEngine] 也会使用户自动退出登录。
  • 支持版本:2.18.0 及以上。
  • 使用限制:同一房间登录接口的调用频率 (QPS) 有一定限制,详情查阅 https://doc-zh.zego.im/article/7581 或联系 ZEGO 技术支持。
  • 注意事项: 1. 使用不同 appID 的 App 不能互通。 2. SDK 支持拉相同 appID 下非同一个房间的流,即跨房间拉流。由于 SDK 的房间信令的相关回调通知是以相同房间为单位,当开发者想要跨房间拉流时,开发者需自行维护相关的消息及信令通知。 3. 强烈建议 userID 与业务 APP 的用户 ID 一一对应,即一个 userID 与一个真实用户是固定且唯一的,而不应该是以随机的 userID 的方式传给 SDK 的方式。因为唯一且固定的 userID 可以让 ZEGO 技术人员快速定位线上问题。 4. 首次因网络原因登录失败或者房间断开连接之后,SDK 重连默认时间为 20min。 隐私保护申明:请勿在此接口填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。

logoutRoom

logoutRoom
- (void)logoutRoom;
退出房间。
Declared in ZegoExpressEngine.h

该接口会退出当前用户已登录的房间,若开启了多房间,则全部房间均会被退出。

  • 业务场景:在同一个房间内用户可以进行直播、音视频通话等。
  • 调用时机:登录房间成功后,若不再使用房间功能,用户可以调用函数 [logoutRoom]。
  • 相关回调:调用此函数后会收到 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调通知成功退出房间,同时同房间其他用户会接收到 [onRoomUserUpdate] 回调通知(开启 isUserStatusNotify 配置的前提下)。
  • 相关接口:用户可以调用 [loginRoom]、[switchRoom] 函数登录或更换房间。
  • 支持版本:2.9.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 退出房间会停止该用户的所有推拉流,引擎会停止,SDK 内部会主动停止本地预览。如果切换房间想保留预览能力,请使用 [switchRoom] 函数。2. 若用户未登录房间,调用该接口也会返回成功。

logoutRoomWithCallback:

logoutRoomWithCallback:
- (void)logoutRoomWithCallback:(ZegoRoomLogoutCallback) callback;
退出房间,带回调。
Declared in ZegoExpressEngine.h

参数

名称类型描述
callbackZegoRoomLogoutCallback本次登出房间结果的回调,如果需要详细房间状态,请关注 [onRoomStateChagned] 回调。是否必填:否。默认值:nil。

详情

该接口会退出当前用户已登录的房间,若开启了多房间,则全部房间均会被退出。

  • 业务场景:在同一个房间内用户可以进行直播、音视频通话等。
  • 调用时机:登录房间成功后,若不再使用房间功能,用户可以调用函数 [logoutRoom]。
  • 相关回调:调用此函数后会收到 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调通知成功退出房间,同时同房间其他用户会接收到 [onRoomUserUpdate] 回调通知(开启 isUserStatusNotify 配置的前提下)。
  • 相关接口:用户可以调用 [loginRoom]、[switchRoom] 函数登录或更换房间。
  • 支持版本:2.9.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 退出房间会停止该用户的所有推拉流,引擎会停止,SDK 内部会主动停止本地预览。如果切换房间想保留预览能力,请使用 [switchRoom] 函数。2. 若用户未登录房间,调用该接口也会返回成功。

logoutRoom:

logoutRoom:
- (void)logoutRoom:(NSString *) roomID;
退出指定房间 ID 的房间。
Declared in ZegoExpressEngine.h

参数

名称类型描述
roomIDNSString *房间 ID,最大长度为 128 字节的字符串。
注意事项:
1. 仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', ''。
2. 如果需要与 Web SDK 互通,请不要使用 '%'。

详情

该接口会退出房间名为 roomID 的房间。

  • 业务场景:在同一个房间内用户可以进行直播、音视频通话等。
  • 调用时机:登录房间成功后,若不再使用房间功能,用户可以调用函数 [logoutRoom]。
  • 相关回调:调用此函数后会收到 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调通知成功退出房间,同时同房间其他用户会接收到 [onRoomUserUpdate] 回调通知(开启 isUserStatusNotify 配置的前提下)。
  • 相关接口:用户可以调用 [loginRoom]、[switchRoom] 函数登录或更换房间。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 退出房间会停止该用户的所有推拉流,引擎会停止,SDK 内部会主动停止本地预览。如果切换房间想保留预览能力,请使用 [switchRoom] 函数。2. 若用户登出房间,但传入 roomID 与已登录房间名不同,SDK 会返回失败。

logoutRoomWithCallback:callback:

logoutRoomWithCallback:callback:
- (void)logoutRoomWithCallback:(NSString *) roomID callback:(ZegoRoomLogoutCallback) callback;
退出指定房间 ID 的房间,并带有回调。
Declared in ZegoExpressEngine.h

参数

名称类型描述
roomIDNSString *房间 ID,最大长度为 128 字节的字符串。
注意事项:
1. 仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', ''。
2. 如果需要与 Web SDK 互通,请不要使用 '%'。
callbackZegoRoomLogoutCallback本次登出房间结果的回调,如果需要详细房间状态,请关注 [onRoomStateChagned] 回调。是否必填:否。默认值:nil。

详情

该接口会退出房间名为 roomID 的房间。

  • 业务场景:在同一个房间内用户可以进行直播、音视频通话等。
  • 调用时机:登录房间成功后,若不再使用房间功能,用户可以调用函数 [logoutRoom]。
  • 相关回调:调用此函数后会收到 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调通知成功退出房间,同时同房间其他用户会接收到 [onRoomUserUpdate] 回调通知(开启 isUserStatusNotify 配置的前提下)。
  • 相关接口:用户可以调用 [loginRoom]、[switchRoom] 函数登录或更换房间。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 退出房间会停止该用户的所有推拉流,引擎会停止,SDK 内部会主动停止本地预览。如果切换房间想保留预览能力,请使用 [switchRoom] 函数。2. 若用户登出房间,但传入 roomID 与已登录房间名不同,SDK 会返回失败。

switchRoom:toRoomID:

switchRoom:toRoomID:
- (void)switchRoom:(NSString *) fromRoomID toRoomID:(NSString *) toRoomID;
切换房间。
Declared in ZegoExpressEngine.h

参数

名称类型描述
fromRoomIDNSString *当前处于的房间 ID。
toRoomIDNSString *需要登录的下一个房间 ID。

详情

使用该接口可以让用户快速从一个房间切换到另外一个房间。

  • 业务场景:若需要快速切换到下一个房间,可调用此函数。
  • 调用时机:登录房间成功后。
  • 相关回调:当用户调用 [switchRoom] 函数时,将会触发 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调通知开发者当前用户连接房间的状态。
  • 相关接口:用户可以调用 [logoutRoom] 函数退出房间。
  • 支持版本:1.14.0 及以上。
  • 使用限制:无。
  • 注意事项: 1. 当调用此函数后,当前正在推或拉的所有流都将会停止(但本地预览不会停止)。 2. 3.5.0 版本开始支持多房间模式(使用函数 [setRoomMode] 设置 ZegoRoomMode 为 ZEGO_ROOM_MODE_MULTI_ROOM)。 3. 若登录房间 [loginRoom] 时传入了 Token 进行登录,则调用 [switchroom] 切换房间时,必须使用带有 config 参数的 [switchroom] 接口切换房间,并传入对应 Token 值。 隐私保护申明:请勿在此接口填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。

switchRoom:toRoomID:config:

switchRoom:toRoomID:config:
- (void)switchRoom:(NSString *) fromRoomID toRoomID:(NSString *) toRoomID config:(ZegoRoomConfig *) config;
使用配置进阶属性的方式切换房间。
Declared in ZegoExpressEngine.h

参数

名称类型描述
fromRoomIDNSString *当前处于的房间 ID。
toRoomIDNSString *需要登录的下一个房间 ID。
configZegoRoomConfig *房间进阶配置。

详情

使用此函数可以让用户快速从一个房间切换到另外一个房间。

  • 业务场景:若需要快速切换到下一个房间,可调用此函数。
  • 调用时机:登录房间成功后。
  • 相关回调:当用户调用 [switchRoom] 函数时,将会触发 [onRoomStateChanged] (2.18.0 之前版本不支持,请使用 [onRoomStateUpdate]) 回调通知开发者当前用户连接房间的状态。
  • 相关接口:用户可以调用 [logoutRoom] 函数退出房间。
  • 支持版本:1.15.0 及以上。
  • 使用限制:无。
  • 注意事项: 1. 当调用此函数后,当前正在推或拉的所有流都将会停止(但本地预览不会停止)。 2. 为了防止 App 被恶意用户模拟登录,可以在切换房间之前加上鉴权验证,即 [config] 参数传入的 ZegoRoomConfig 对象中的 [token] 参数。此参数配置作用于即将切换过去的房间。 3. 3.5.0 版本开始支持多房间模式(使用函数 [setRoomMode] 设置 ZegoRoomMode 为 ZEGO_ROOM_MODE_MULTI_ROOM)。 4. 若登录房间 [loginRoom] 时传入了 Token 进行登录,则调用 [switchroom] 切换房间时,必须使用带有 config 参数的 [switchroom] 接口切换房间,并传入对应 Token 值。 隐私保护申明:请勿在此接口填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。

renewToken:roomID:

renewToken:roomID:
- (void)renewToken:(NSString *) token roomID:(NSString *) roomID;
更新 token 鉴权信息。
Declared in ZegoExpressEngine.h

参数

名称类型描述
tokenNSString *需要更新的 token。
roomIDNSString *房间 ID。

详情

当开发者收到 [onRoomTokenWillExpire] 之后,可使用此 API 更新 token 鉴权信息,保障后续 RTC 功能正常。

  • 业务场景:Token 将要过期时使用。
  • 调用时机:收到 [onRoomTokenWillExpire] 之后。
  • 支持版本:2.8.0 及以上。
  • 使用限制:无。
  • 注意事项:Token 中包含用户的房间权限、推流权限、有效时间等重要信息,详情请参考 https://doc-zh.zego.im/article/10360

setRoomExtraInfo:forKey:roomID:callback:

setRoomExtraInfo:forKey:roomID:callback:
- (void)setRoomExtraInfo:(NSString *) value key:(NSString *) forKey roomID:(NSString *) roomID callback:(nullable ZegoRoomSetRoomExtraInfoCallback) callback;
设置房间附加消息。
Declared in ZegoExpressEngine.h

参数

名称类型描述
valueNSString *附加消息值。
keyNSString *附加消息键。
roomIDNSString *房间 ID。
callbacknullable ZegoRoomSetRoomExtraInfoCallback设置房间附加消息结果回调。

详情

用户调用此函数设置房间的附加消息。

  • 业务场景:可以设置一些房间相关的业务属性,比如是否有人在上麦。
  • 调用时机:登录房间成功后。
  • 相关回调:相同房间内的其他用户会通过 [onRoomExtraInfoUpdate] 回调函数获得通知。
  • 相关接口:无。
  • 支持版本:1.13.0 及以上。
  • 使用限制:关于此函数的使用限制,请参考 https://doc-zh.zego.im/article/7581 或联系 ZEGO 技术支持。
  • 注意事项:key、value 的限制,请参考“使用限制”。新设置的 value 会覆盖旧的设置。

getRoomStreamList:streamListType:

getRoomStreamList:streamListType:
- (ZegoRoomStreamList *)getRoomStreamList:(NSString *) roomID streamListType:(ZegoRoomStreamListType) streamListType;
获取房间内流列表。
Declared in ZegoExpressEngine.h

参数

名称类型描述
roomIDNSString *房间 ID。
streamListTypeZegoRoomStreamListType获取类型

详情

获取房间内流列表。

  • 业务场景:获取房间内流列表
  • 调用时机:登录房间成功后。
  • 相关接口:无。
  • 支持版本:3.12.0 及以上。
  • 注意事项:该接口是获取实时内部的流列表,在房间与服务断开链接的状态下,可能会不准确。请勿高频调用本接口。

返回值

返回的列表

startPublishingStream:

startPublishingStream:
- (void)startPublishingStream:(NSString *) streamID;
开始推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID,长度不超过 256 的字符串。
注意事项:
1. 流 ID 由您自己定义。
2. 需要在整个 AppID 内全局唯一,若出现在同一个 AppID 内,不同的用户各推了一条流且流名相同,将会导致后推流的用户推流失败。
3. 仅支持数字,英文字符 和 '-', '_'。

详情

用户将自己本地的音视频流推送到 ZEGO RTC 服务器 或 CDN,同一房间的其他用户通过 "streamID" 或 CDN 拉流地址就可以拉取该音视频流进行观看。

  • 业务场景:可以用于实时连麦、直播等场景下进行推流。
  • 调用时机:调用 [loginRoom] 加入房间后调用该函数。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项: 1. 开始推流前,用户可选择调用 [setVideoConfig] 设置相关视频参数,调用 [startPreview] 进行视频预览。 2. 当推流成功之后,同房间内其他用户可通过监听 [onRoomStreamUpdate] 回调来获取流的新增情况。 3. 在网络质量不佳的情况下,用户推流可能出现中断,SDK 会尝试重连并推流(连接成功后 SDK 会自动进行推流),开发者可通过监听 [onPublisherStateUpdate] 事件来获知当前推流状态以及错误信息。详情请参考 https://doc-zh.zego.im/faq/reconnect

startPublishingStream:channel:

startPublishingStream:channel:
- (void)startPublishingStream:(NSString *) streamID channel:(ZegoPublishChannel) channel;
开始推流,可选择推第二路流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID,长度不超过 256 的字符串。
注意事项:
1. 流 ID 由您自己定义。
2. 需要在整个 AppID 内全局唯一,若出现在同一个 AppID 内,不同的用户各推了一条流且流名相同,将会导致后推流的用户推流失败。
3. 仅支持数字,英文字符 和 '-', '_'。
channelZegoPublishChannel推流通道。

详情

用户将自己本地的音视频流推送到 ZEGO RTC 服务器 或 CDN,同一房间的其他用户通过 "streamID" 或 CDN 拉流地址就可以拉取该音视频流进行观看。

  • 业务场景:可以用于实时连麦、直播等场景下进行推流。
  • 调用时机:调用 [loginRoom] 加入房间后调用该函数。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项: 1. 开始推流前,用户可选择调用 [setVideoConfig] 设置相关视频参数,调用 [startPreview] 进行视频预览。 2. 当推流成功之后,同房间内其他用户可通过监听 [onRoomStreamUpdate] 回调来获取流的新增情况。 3. 在网络质量不佳的情况下,用户推流可能出现中断,SDK 会尝试重连并推流(连接成功后 SDK 会自动进行推流),开发者可通过监听 [onPublisherStateUpdate] 事件来获知当前推流状态以及错误信息。详情请参考 https://doc-zh.zego.im/faq/reconnect

startPublishingStream:config:channel:

startPublishingStream:config:channel:
- (void)startPublishingStream:(NSString *) streamID config:(ZegoPublisherConfig *) config channel:(ZegoPublishChannel) channel;
开始推流,支持多房间模式
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID,长度不超过 256 的字符串。
注意事项:
1. 流 ID 由您自己定义。
2. 需要在整个 AppID 内全局唯一,若出现在同一个 AppID 内,不同的用户各推了一条流且流名相同,将会导致后推流的用户推流失败。
3. 仅支持数字,英文字符 和 '-', '_'。
configZegoPublisherConfig *推流进阶配置。
channelZegoPublishChannel推流通道。

详情

用户将自己本地的音视频流推送到 ZEGO RTC 服务器 或 CDN,同一房间的其他用户通过 "streamID" 或 CDN 拉流地址就可以拉取该音视频流进行观看。

  • 业务场景:可以用于实时连麦、直播等场景下进行推流。
  • 调用时机:调用 [loginRoom] 加入房间后调用该函数。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项: 1. 开始推流前,用户可选择调用 [setVideoConfig] 设置相关视频参数,调用 [startPreview] 进行视频预览。 2. 当推流成功之后,同房间内其他用户可通过监听 [onRoomStreamUpdate] 回调来获取流的新增情况。 3. 在网络质量不佳的情况下,用户推流可能出现中断,SDK 会尝试重连并推流(连接成功后 SDK 会自动进行推流),开发者可通过监听 [onPublisherStateUpdate] 事件来获知当前推流状态以及错误信息。详情请参考 https://doc-zh.zego.im/faq/reconnect 4. 调用 [SetRoomMode] 函数选择多房间,必须明确指定房间 ID。

startPublishingStreamInScene:channel:config:

startPublishingStreamInScene:channel:config:
- (void)startPublishingStreamInScene:(NSString *) streamID channel:(ZegoPublishChannel) channel config:(ZegoScenePublisherConfig *) config;
在范围场景内推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID,长度不超过 256 的字符串。
注意事项:
1. 流 ID 由您自己定义。
2. 需要在整个 AppID 内全局唯一,若出现在同一个 AppID 内,不同的用户各推了一条流且流名相同,将会导致后推流的用户推流失败。
3. 仅支持数字,英文字符 和 '-', '_'。
channelZegoPublishChannel推流通道。
configZegoScenePublisherConfig *场景推流进阶配置。

详情

用户将自己本地的音视频流推送到 ZEGO RTC 服务器。

  • 业务场景:范围场景场景下推流。
  • 调用时机:调用 [loginScene] 加入场景后调用该函数。
  • 支持版本:3.0.0 及以上。
  • 使用限制:无。
  • 注意事项:无。

stopPublishingStream

stopPublishingStream
- (void)stopPublishingStream;
停止推流。
Declared in ZegoExpressEngine.h

用户停止发送本地的音视频流,房间内其他用户会收到流删除通知。

  • 业务场景:可以用于实时连麦、直播等场景下停止推流。
  • 调用时机:调用 [startPublishingStream] 开始推流后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项: 1. 在停止推流之后,同房间内其他用户可通过监听 [onRoomStreamUpdate] 回调来收到流的删除通知。 2. 如果用户已经启动推流,在推送新流(与之前的 streamID 不同)之前,必须要调用此函数停止当前流的推送,否则新流推送会返回失败。 3. 在停止推流之后,开发者应该根据业务情况来决定是否需要停止本地预览。

stopPublishingStream:

stopPublishingStream:
- (void)stopPublishingStream:(ZegoPublishChannel) channel;
停止推流,可停止指定通道的音视频流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
channelZegoPublishChannel推流通道。

详情

用户停止发送本地的音视频流,房间内其他用户会收到流删除通知。

  • 业务场景:可以用于实时连麦、直播等场景下停止推流。
  • 调用时机:调用 [startPublishingStream] 开始推流后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项: 1. 在停止推流之后,同房间内其他用户可通过监听 [onRoomStreamUpdate] 回调来收到流的删除通知。 2. 如果用户已经启动推流,在推送新流(与之前的 streamID 不同)之前,必须要调用此函数停止当前流的推送,否则新流推送会返回失败。 3. 在停止推流之后,开发者应该根据业务情况来决定是否需要停止本地预览。

setStreamExtraInfo:callback:

setStreamExtraInfo:callback:
- (void)setStreamExtraInfo:(NSString *) extraInfo callback:(nullable ZegoPublisherSetStreamExtraInfoCallback) callback;
设置流附加信息。
Declared in ZegoExpressEngine.h

参数

名称类型描述
extraInfoNSString *流附加信息,长度不超过1024的字符串。
callbacknullable ZegoPublisherSetStreamExtraInfoCallback更新流附加信息执行结果通知。

详情

可通过此函数设置当前推流的流附加信息。流附加信息是流 ID 的附加信息标识,不同于流 ID 在推流过程中不可修改,流附加信息可以在对应流 ID 的推流中途修改。开发者可根据流附加信息来实现流 ID 相关的可变内容的同步。

  • 调用时机:在创建引擎 [createEngine] 之后,在推流 [startPublishingStream] 前后调用都可生效。
  • 相关回调:相同房间内的其他用户会通过 [onRoomStreamExtraInfoUpdate] 回调函数获得通知。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:作用于主推流通道 ZegoPublishChannel.Main。

setStreamExtraInfo:channel:callback:

setStreamExtraInfo:channel:callback:
- (void)setStreamExtraInfo:(NSString *) extraInfo channel:(ZegoPublishChannel) channel callback:(nullable ZegoPublisherSetStreamExtraInfoCallback) callback;
设置指定推流通道的流附加信息。
Declared in ZegoExpressEngine.h

参数

名称类型描述
extraInfoNSString *流附加信息,长度不超过1024的字符串。
channelZegoPublishChannel推流通道。
callbacknullable ZegoPublisherSetStreamExtraInfoCallback设置流附加信息执行结果通知。

详情

可通过此函数设置当前推流的流附加信息。流附加信息是流 ID 的附加信息标识,不同于流 ID 在推流过程中不可修改,流附加信息可以在对应流 ID 的推流中途修改。开发者可根据流附加信息来实现流 ID 相关的可变内容的同步。

  • 调用时机:在创建引擎 [createEngine] 之后,在推流 [startPublishingStream] 前后调用都可生效。
  • 相关回调:结果会通过 [ZegoPublisherSetStreamExtraInfoCallback] 回调通知。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。

startPreview:

startPreview:
- (void)startPreview:(ZegoCanvas *) canvas;
启动/更新本地预览。
Declared in ZegoExpressEngine.h

参数

名称类型描述
canvasZegoCanvas *启动预览时用于显示画面的视图,视图设置为 nil 则不进行预览。

详情

用户通过调用此函数可以看到自己本地的画面。

  • 业务场景:可以用于实时连麦、直播等场景下的本地预览。
  • 调用时机:调用 [createEngine] 后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 预览功能不需要先登录房间或推流,但是在退出房间之后 SDK 内部默认会主动停止预览。2. 可以通过再次调用此函数来切换视图或修改预览模式(ZegoViewMode)。用户只能在一个视图上预览,如果再次调用 [startPreview] 传入新的视图,则预览画面只会在新视图展现。3. 可以通过调用 [setVideoMirrorMode] 函数来设置预览画面的镜像模式,移动端默认开启预览画面的镜像效果。4. 调用此函数后,SDK 会启动音视频引擎,并尝试采集音频与视频。

startPreview:channel:

startPreview:channel:
- (void)startPreview:(ZegoCanvas *) canvas channel:(ZegoPublishChannel) channel;
启动/更新本地预览,支持设置其他通道的推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
canvasZegoCanvas *启动预览时用于显示画面的视图,视图设置为 nil 则不进行预览。
channelZegoPublishChannel推流通道

详情

用户通过调用此函数可以看到自己本地的画面。

  • 业务场景:可以用于实时连麦、直播等场景下的本地预览。
  • 调用时机:调用 [createEngine] 后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 预览功能不需要先登录房间或推流,但是在退出房间之后 SDK 内部默认会主动停止预览。2. 可以通过再次调用此函数来切换视图或修改预览模式(ZegoViewMode)。用户只能在一个视图上预览,如果再次调用 [startPreview] 传入新的视图,则预览画面只会在新视图展现。3. 可以通过调用 [setVideoMirrorMode] 函数来设置预览画面的镜像模式,移动端默认开启预览画面的镜像效果。4. 调用此函数后,SDK 会启动音视频引擎,并尝试采集音频与视频。

startPreview

startPreview
- (void)startPreview;
启动本地音频预览。
Declared in ZegoExpressEngine.h

在创建引擎之后,未推拉流之前,可以调用此函数开始音频采集。

  • 业务场景:可以通过调用此函数配合引擎的声浪功能来检测音频设备是否正常。
  • 调用时机:调用 [createEngine] 之后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 预览功能不需要先登录房间或推流,但是在退出房间之后 SDK 内部默认会主动停止预览。2. 调用此函数后,SDK 会启动音频引擎,并尝试采集音频。

stopPreview

stopPreview
- (void)stopPreview;
停止本地预览
Declared in ZegoExpressEngine.h

当本地不需要预览时可调用此函数停止预览。

  • 支持版本:1.1.0 及以上。
  • 注意事项:停止预览不会影响推流、拉流功能。

stopPreview:

stopPreview:
- (void)stopPreview:(ZegoPublishChannel) channel;
停止本地预览,支持设置其他通道的推流
Declared in ZegoExpressEngine.h

参数

名称类型描述
channelZegoPublishChannel推流通道

详情

当本地不需要预览时可调用此函数停止预览。

  • 支持版本:1.1.0 及以上。
  • 注意事项:停止预览不会影响推流、拉流功能。

setVideoConfig:

setVideoConfig:
- (void)setVideoConfig:(ZegoVideoConfig *) config;
设置视频配置。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoVideoConfig *视频配置,SDK 提供常用的分辨率、帧率和码率的组合值,也可自定义分辨率、帧率和码率。

详情

设置视频帧率、码率、视频采集分辨率、视频编码输出分辨率等视频配置。

  • 业务场景:不同业务场景下的建议配置 https://doc-zh.zego.im/article/10365
  • 默认值:默认视频采集分辨率为 360p,视频编码输出分辨率为 360p,码率为 600 kbps,帧率为 15 fps。
  • 调用时机:调用 [createEngine] 之后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:需要在 [startPreview] 前调用。在 [startPreview] 之后调用无法修改采集分辨率,仅支持修改编码分辨率、码率和帧率。
  • 注意事项:移动端分辨率的宽高与 PC 端分辨率的宽高是相反的,例:移动端的 360p 的分辨率为 360x640,而 PC 端 360p 的分辨率为 640x360。

setVideoConfig:channel:

setVideoConfig:channel:
- (void)setVideoConfig:(ZegoVideoConfig *) config channel:(ZegoPublishChannel) channel;
设置视频配置,支持设置其他通道的推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoVideoConfig *视频配置,SDK 提供常用的分辨率、帧率和码率的组合值,也可自定义分辨率、帧率和码率。
channelZegoPublishChannel推流通道。

详情

设置视频帧率、码率、视频采集分辨率、视频编码输出分辨率等视频配置。

  • 业务场景:不同业务场景下的建议配置 https://doc-zh.zego.im/article/10365
  • 默认值:默认视频采集分辨率为 360p,视频编码输出分辨率为 360p,码率为 600 kbps,帧率为 15 fps。
  • 调用时机:调用 [createEngine] 之后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:需要在 [startPreview] 前调用。在 [startPreview] 之后调用无法修改采集分辨率,仅支持修改编码分辨率、码率和帧率。
  • 注意事项:移动端分辨率的宽高与 PC 端分辨率的宽高是相反的,例:移动端的 360p 的分辨率为 360x640,而 PC 端 360p 的分辨率为 640x360。

getVideoConfig

getVideoConfig
- (ZegoVideoConfig *)getVideoConfig;
获取当前视频配置
Declared in ZegoExpressEngine.h

可通过此函数获取主推流通道当前的视频帧率、码率,视频采集分辨率,视频编码输出分辨率。

视频配置对象

getVideoConfig:

getVideoConfig:
- (ZegoVideoConfig *)getVideoConfig:(ZegoPublishChannel) channel;
获取当前视频配置,支持设置其他通道的推流
Declared in ZegoExpressEngine.h

参数

名称类型描述
channelZegoPublishChannel推流通道

详情

可通过此函数获取指定推流通道当前的视频帧率、码率,视频采集分辨率,视频编码输出分辨率。

返回值

视频配置对象

setPublishDualStreamConfig:channel:

setPublishDualStreamConfig:channel:
- (void)setPublishDualStreamConfig:(NSArray<ZegoPublishDualStreamConfig *> *) configList channel:(ZegoPublishChannel) channel;
设置大小流配置信息
Declared in ZegoExpressEngine.h

参数

名称类型描述
configListNSArray<ZegoPublishDualStreamConfig *> *配置信息。
channelZegoPublishChannel推流通道。

详情

设置大小流配置。

  • 调用时机:必须在调用 [createEngine] 之后, 先调用[ZegoExpressEngine > setVideoConfig] 中指定codecID为 ZegoVideoCodecIDH264DualStream 时生效。
  • 支持版本:3.7.0 及以上。
  • 使用限制:必须同时指定大流和小流参数才能生效, 设置大流, 小流分辨率比要一致。例如都为 4:3 。
  • 注意事项:宽、高、分辨率以及码率都大于零才会生效。

setVideoMirrorMode:

setVideoMirrorMode:
- (void)setVideoMirrorMode:(ZegoVideoMirrorMode) mirrorMode;
设置镜像模式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
mirrorModeZegoVideoMirrorMode预览或推流的镜像模式。

详情

设置本地预览视频以及推送的视频是否开启镜像模式,具体镜像模式可以参考 https://doc-zh.zego.im/article/10365

  • 调用时机:调用 [createEngine] 之后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:只有 SDK 负责渲染时该设置才有效。

setVideoMirrorMode:channel:

setVideoMirrorMode:channel:
- (void)setVideoMirrorMode:(ZegoVideoMirrorMode) mirrorMode channel:(ZegoPublishChannel) channel;
设置镜像模式,支持设置其他通道的推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
mirrorModeZegoVideoMirrorMode预览或推流的镜像模式。
channelZegoPublishChannel推流通道。

详情

设置本地预览视频以及推送的视频是否开启镜像模式,具体镜像模式可以参考 https://doc-zh.zego.im/article/10365

  • 调用时机:调用 [createEngine] 之后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:只有 SDK 负责渲染时该设置才有效。

setAppOrientation:

setAppOrientation:
- (void)setAppOrientation:(UIInterfaceOrientation) orientation;
设置视频的朝向。
Declared in ZegoExpressEngine.h

参数

名称类型描述
orientationUIInterfaceOrientation视频的朝向。

详情

设置视频的朝向,详细的介绍可参考文档 https://doc-zh.zego.im/faq/express_video_capture_rotation

  • 业务场景:用户使用移动设备进行直播或视频通话时,可以根据现场设置不同的视频方向。
  • 调用时机:调用 [createEngine] 之后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。

setAppOrientation:channel:

setAppOrientation:channel:
- (void)setAppOrientation:(UIInterfaceOrientation) orientation channel:(ZegoPublishChannel) channel;
设置采集视频的朝向,支持设置其他通道的推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
orientationUIInterfaceOrientation视频的朝向。
channelZegoPublishChannel推流通道。

详情

设置视频的朝向,详细的介绍可参考文档 https://doc-zh.zego.im/faq/express_video_capture_rotation

  • 业务场景:用户使用移动设备进行直播或视频通话时,可以根据现场设置不同的视频方向。
  • 调用时机:调用 [createEngine] 之后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:目前只支持 iOS 和 Android 平台。

setAudioConfig:

setAudioConfig:
- (void)setAudioConfig:(ZegoAudioConfig *) config;
设置音频质量配置。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoAudioConfig *音频质量配置。

详情

可通过此函数设置音频编码类型、码率、音频声道的组合值。若预设的值无法满足开发者的场景,开发者可自行根据业务要求设置符合的参数。

  • 默认值:默认的音频配置参考 [ZegoAudioConfig] 的默认值。
  • 调用时机:在创建引擎 [createEngine] 后,且在推流 [startPublishingStream] 前设置。
  • 相关接口:[getAudioConfig]。
  • 支持版本:1.3.4 及以上。
  • 使用限制:无。
  • 注意事项:作用于主推流通道 ZegoPublishChannel.Main。

setAudioConfig:channel:

setAudioConfig:channel:
- (void)setAudioConfig:(ZegoAudioConfig *) config channel:(ZegoPublishChannel) channel;
设置指定推流通道的音频质量配置。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoAudioConfig *音频质量配置。
channelZegoPublishChannel推流通道。

详情

可通过此函数设置音频编码类型、码率、音频声道的组合值。若预设的值无法满足开发者的场景,开发者可自行根据业务要求设置符合的参数。

  • 默认值:默认的音频配置参考 [ZegoAudioConfig] 的默认值。
  • 调用时机:在创建引擎 [createEngine] 后,且在推流 [startPublishingStream] 前设置。
  • 相关接口:[getAudioConfig]。
  • 支持版本:1.3.4 及以上。
  • 使用限制:无。

getAudioConfig

getAudioConfig
- (ZegoAudioConfig *)getAudioConfig;
获取当前音频质量配置。
Declared in ZegoExpressEngine.h

可通过此函数获取当前的音频编码类型、码率、音频声道的组合值。

  • 调用时机:在创建引擎 [createEngine] 后。
  • 相关接口:[setAudioConfig]。
  • 支持版本:1.8.0 及以上。
  • 使用限制:无。
  • 注意事项:作用于主推流通道 ZegoPublishChannel.Main。

音频质量配置。

getAudioConfig:

getAudioConfig:
- (ZegoAudioConfig *)getAudioConfig:(ZegoPublishChannel) channel;
获取指定推流通道的当前音频质量配置。
Declared in ZegoExpressEngine.h

参数

名称类型描述
channelZegoPublishChannel推流通道。

详情

可通过此函数获取当前的音频编码类型、码率、音频声道的组合值。

  • 调用时机:在创建引擎 [createEngine] 后。
  • 相关接口:[setAudioConfig]。
  • 支持版本:1.8.0 及以上。
  • 使用限制:无。

返回值

音频质量配置。

setPublishStreamEncryptionKey:

setPublishStreamEncryptionKey:
- (void)setPublishStreamEncryptionKey:(NSString *) key;
设置推流加密密钥。
Declared in ZegoExpressEngine.h

参数

名称类型描述
keyNSString *加密密钥,注意密钥长度仅支持 16/24/32 字节。

详情

支持在推流中途调用此函数更新加密密钥。

  • 调用时机:在创建引擎 [createEngine] 后,在推流 [startPublishingStream] 前后调用都可生效。
  • 相关接口:调用 [stopPublishingStream] 或 [logoutRoom] 都将会清空加密密钥。
  • 支持版本:1.19.0 及以上。
  • 使用限制:该函数仅当向 Zego RTC 服务器推流时调用有效。
  • 注意事项:需要先更新拉流端解密密钥后才能更新推流端加密密钥。作用于主推流通道 ZegoPublishChannel.Main。

setPublishStreamEncryptionKey:channel:

setPublishStreamEncryptionKey:channel:
- (void)setPublishStreamEncryptionKey:(NSString *) key channel:(ZegoPublishChannel) channel;
设置指定推流通道的推流加密密钥。
Declared in ZegoExpressEngine.h

参数

名称类型描述
keyNSString *加密密钥,注意密钥长度仅支持 16/24/32 字节。
channelZegoPublishChannel推流通道。

详情

支持在推流中途调用此函数更新加密密钥。

  • 调用时机:在创建引擎 [createEngine] 后,在推流 [startPublishingStream] 前后调用都可生效。
  • 相关接口:调用 [stopPublishingStream] 或 [logoutRoom] 都将会清空加密密钥。
  • 支持版本:1.19.0 及以上。
  • 使用限制:该函数仅当向 Zego RTC 服务器推流时调用有效。
  • 注意事项:需要先更新拉流端解密密钥后才能更新推流端加密密钥。

takePublishStreamSnapshot:

takePublishStreamSnapshot:
- (void)takePublishStreamSnapshot:(ZegoPublisherTakeSnapshotCallback) callback;
对推流画面截图。
Declared in ZegoExpressEngine.h

参数

名称类型描述
callbackZegoPublisherTakeSnapshotCallback推流画面截图结果回调。

详情

对推流画面进行截图。

  • 调用时机:调用 [startPublishingStream] 或 [startPreview] 后调用此函数。
  • 相关回调:截图结果会通过 [ZegoPublisherTakeSnapshotCallback] 回调 。(Windows HBITMAP; macOS/iOS CGImageRef; Linux QImage; Android Bitmap)。
  • 相关接口:[takePlayStreamSnapshot]。
  • 支持版本:1.17.0 及以上。
  • 使用限制:无。
  • 注意事项:截图的分辨率为 [setVideoConfig] 里设置的编码分辨率,若需改为采集分辨率,请调用 [setCapturePipelineScaleMode] 将采集缩放时机模式改为 [Post]。作用于主推流通道 ZegoPublishChannel.Main。

takePublishStreamSnapshot:channel:

takePublishStreamSnapshot:channel:
- (void)takePublishStreamSnapshot:(ZegoPublisherTakeSnapshotCallback) callback channel:(ZegoPublishChannel) channel;
对指定推流通道的推流画面截图。
Declared in ZegoExpressEngine.h

参数

名称类型描述
callbackZegoPublisherTakeSnapshotCallback推流画面截图结果回调。
channelZegoPublishChannel推流通道。

详情

对推流画面进行截图。

  • 调用时机:在调用 [startPublishingStream] 或 [startPreview] 后调用此函数。
  • 相关回调:截图结果会通过 [ZegoPublisherTakeSnapshotCallback] 回调。
  • 相关接口:[takePlayStreamSnapshot]。
  • 支持版本:1.17.0 及以上。
  • 使用限制:无。
  • 注意事项:截图的分辨率为 [setVideoConfig] 里设置的编码分辨率,若需改为采集分辨率,请调用 [setCapturePipelineScaleMode] 将采集缩放时机模式改为 [Post]。

takePublishStreamSnapshotByConfig:callback:channel:

takePublishStreamSnapshotByConfig:callback:channel:
- (void)takePublishStreamSnapshotByConfig:(ZegoPublisherTakeSnapshotConfig *) config callback:(ZegoPublisherTakeSnapshotCallback) callback channel:(ZegoPublishChannel) channel;
对指定推流通道的推流画面截图。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoPublisherTakeSnapshotConfig *推流画面截图配置
callbackZegoPublisherTakeSnapshotCallback推流画面截图结果回调。
channelZegoPublishChannel推流通道。

详情

对推流画面进行截图。

  • 调用时机:在调用 [startPublishingStream] 或 [startPreview] 后调用此函数。
  • 相关回调:截图结果会通过 [ZegoPublisherTakeSnapshotCallback] 回调。
  • 相关接口:[takePlayStreamSnapshot]。
  • 支持版本:3.22.0 及以上。
  • 使用限制:无。
  • 注意事项:截图的分辨率为 [setVideoConfig] 里设置的编码分辨率,若需改为采集分辨率,请调用 [setCapturePipelineScaleMode] 将采集缩放时机模式改为 [Post]。

mutePublishStreamAudio:

mutePublishStreamAudio:
- (void)mutePublishStreamAudio:(BOOL) mute;
停止或恢复发送音频流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
muteBOOL是否停止发送音频流;true 表示不发送音频流;false 表示发送音频流;默认为 false。

详情

推流时可调用此函数实现不推音频数据流,本地仍会采集和处理音频,但向网络发送静音帧数据包。

  • 业务场景:用户不希望推出任何音频数据时,可以调用该接口。该接口不影响 [onBeforeAudioPrepAudioData]。
  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 相关回调:如果在本地设置了停止发送音频流,拉本地流的远端用户可以通过监听 [onRemoteMicStateUpdate] 回调收到 Mute 的状态变更通知。
  • 相关接口:[mutePublishStreamVideo]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:作用于主推流通道 ZegoPublishChannel.Main。

mutePublishStreamAudio:channel:

mutePublishStreamAudio:channel:
- (void)mutePublishStreamAudio:(BOOL) mute channel:(ZegoPublishChannel) channel;
停止或恢复发送指定推流通道的音频流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
muteBOOL是否停止发送音频流;true 表示不发送音频流;false 表示发送音频流;默认为 false。
channelZegoPublishChannel推流通道。

详情

推流时可调用此函数实现不推音频数据流,本地仍会采集和处理音频,但向网络发送静音帧数据包。

  • 业务场景:用户不希望推出任何音频数据时,可以调用该接口。该接口不影响 [onBeforeAudioPrepAudioData]。
  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 相关回调:如果在本地设置了停止发送音频流,拉本地流的远端用户可以通过监听 [onRemoteMicStateUpdate] 回调收到 Mute 的状态变更通知。
  • 相关接口:[mutePublishStreamVideo]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。

mutePublishStreamVideo:

mutePublishStreamVideo:
- (void)mutePublishStreamVideo:(BOOL) mute;
停止或恢复发送视频流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
muteBOOL是否停止发送视频流;true 表示不发送视频流;false 表示发送视频流;默认为 false。

详情

推流时可调用此函数实现不推视频流,本地摄像头仍能正常工作,能正常采集,预览和处理视频画面,但不向网络发送视频数据。

  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 相关回调:如果在本地设置了停止发送视频流,拉本地流的远端用户可以通过监听 [onRemoteCameraStateUpdate] 回调收到 Mute 的状态变更通知。
  • 相关接口:[mutePublishStreamAudio]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:作用于主推流通道 ZegoPublishChannel.Main。

mutePublishStreamVideo:channel:

mutePublishStreamVideo:channel:
- (void)mutePublishStreamVideo:(BOOL) mute channel:(ZegoPublishChannel) channel;
停止或恢复发送指定推流通道的视频流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
muteBOOL是否停止发送视频流;true 表示只发送音频流不发送视频流;false 表示同时发送音频和视频流;默认为 false。
channelZegoPublishChannel推流通道。

详情

推流时可调用此函数实现不推视频流,本地摄像头仍能正常工作,能正常采集,预览和处理视频画面,但不向网络发送视频数据。

  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 相关回调:如果在本地设置了停止发送视频流,拉本地流的远端用户可以通过监听 [onRemoteCameraStateUpdate] 回调收到 Mute 的状态变更通知。
  • 相关接口:[mutePublishStreamAudio]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。

setStreamAlignmentProperty:channel:

setStreamAlignmentProperty:channel:
- (void)setStreamAlignmentProperty:(int) alignment channel:(ZegoPublishChannel) channel;
开启或关闭流精准对齐功能
Declared in ZegoExpressEngine.h

参数

名称类型描述
alignmentint是否开启精准对齐功能,1 表示开启,0 表示关闭。
channelZegoPublishChannel推流通道。

详情

调用本接口开启或关闭流对齐功能。

  • 业务场景:常用于 KTV 等需要流对齐的场景。
  • 默认值:若未调该接口,默认为 不对齐
  • 调用时机:在创建引擎 [createEngine] 后。
  • 相关接口:[startMixerTask]、[startAutoMixerTask]。
  • 支持版本:2.11.0 及以上。
  • 注意事项:如果在拉多路流或者混流时需要通过网络时间对各流进行对齐,推流需调用 [startPublishingStream] 且 [ZegoPublisherConfig] 中的 [forceSynchronousNetworkTime] 为1,开启网络时间同步。

enableTrafficControl:property:

enableTrafficControl:property:
- (void)enableTrafficControl:(BOOL) enable property:(ZegoTrafficControlProperty) property;
开始或停止流量控制。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否使用流量控制。true 表示开启流控,false 表示关闭流控。默认为 true。
propertyZegoTrafficControlProperty流量控制的属性,位掩码或运算格式。具体可设置为 [ZegoTrafficControlProperty] 的属性的一个或多个枚举组合。默认为 AdaptiveFPS。

详情

开启流量控制可以使 SDK 根据当前上行网络环境状况,或者在1 对1 互动场景下根据对方下行网络环境状况,调节音视频推流码率大小,以保障效果流畅。同时,可进一步指定流量控制的属性来调整相应的控制策略。

  • 默认值:默认开启。
  • 调用时机:在创建引擎 [createEngine] 后,在推流 [startPublishingStream] 之前调用生效。
  • 支持版本:1.5.0 及以上。
  • 使用限制:仅支持 RTC 推流。
  • 注意事项:作用于主推流通道 ZegoPublishChannel.Main。

enableTrafficControl:property:channel:

enableTrafficControl:property:channel:
- (void)enableTrafficControl:(BOOL) enable property:(ZegoTrafficControlProperty) property channel:(ZegoPublishChannel) channel;
开始或停止指定推流通道的流量控制。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否使用流量控制;true 表示开启流控;false 表示关闭流控;默认为 true。
propertyZegoTrafficControlProperty流量控制的属性,位掩码格式。具体可设置为 [ZegoTrafficControlProperty] 的属性的一个或多个枚举组合。默认为 AdaptiveFPS。
channelZegoPublishChannel推流通道。

详情

开启流量控制可以使 SDK 根据当前上行网络环境状况,或者在1 对1 互动场景下根据对方下行网络环境状况,调节音视频推流码率大小,以保障效果流畅。同时,可进一步指定流量控制的属性来调整相应的控制策略。

  • 默认值:默认开启。
  • 调用时机:在创建引擎 [createEngine] 后,在推流 [startPublishingStream] 之前调用生效。
  • 支持版本:1.5.0 及以上。
  • 使用限制:仅支持 RTC 推流。

setMinVideoBitrateForTrafficControl:mode:

setMinVideoBitrateForTrafficControl:mode:
- (void)setMinVideoBitrateForTrafficControl:(int) bitrate mode:(ZegoTrafficControlMinVideoBitrateMode) mode;
设置流量控制的最低视频码率阈值。
Declared in ZegoExpressEngine.h

参数

名称类型描述
bitrateint流量控制的最低视频码率阈值,单位为 kbps。
modeZegoTrafficControlMinVideoBitrateMode低于最低码率时的视频发送模式。

详情

设置流量控制时视频码率达到最低阈值时的控制策略。当码率低于最低阈值时,可以选择不发送视频数据或者以极低帧率发送。

  • 默认值:无视频码率最低阈值的控制效果。
  • 调用时机:在创建引擎 [createEngine] 后,在推流 [startPublishingStream] 前调用生效。
  • 相关接口:[enableTrafficControl]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:必须开启流量控制 [enableTrafficControl]。
  • 注意事项:作用于主推流通道 ZegoPublishChannel.Main。

setMinVideoBitrateForTrafficControl:mode:channel:

setMinVideoBitrateForTrafficControl:mode:channel:
- (void)setMinVideoBitrateForTrafficControl:(int) bitrate mode:(ZegoTrafficControlMinVideoBitrateMode) mode channel:(ZegoPublishChannel) channel;
设置指定推流通道的流量控制视频码率最低值
Declared in ZegoExpressEngine.h

参数

名称类型描述
bitrateint最低视频码率,单位为 kbps。
modeZegoTrafficControlMinVideoBitrateMode低于最低码率时的视频发送模式。
channelZegoPublishChannel推流通道。

详情

设置流量控制时视频码率达到最低阈值时的控制策略。当码率低于最低阈值时,可以选择不发送视频数据或者以极低帧率发送。

  • 默认值:无视频码率最低阈值的控制效果。
  • 调用时机:在创建引擎 [createEngine] 后,在推流 [startPublishingStream] 前调用生效。
  • 相关接口:[enableTrafficControl]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:必须开启流量控制 [enableTrafficControl]。

setMinVideoFpsForTrafficControl:channel:

setMinVideoFpsForTrafficControl:channel:
- (void)setMinVideoFpsForTrafficControl:(int) fps channel:(ZegoPublishChannel) channel;
设置流量控制的最低视频帧率阈值。
Declared in ZegoExpressEngine.h

参数

名称类型描述
fpsint流量控制的最低视频帧率阈值,单位为 fps。
channelZegoPublishChannel推流通道。

详情

开启流量控制 [enableTrafficControl],并且它的参数 [property] 包含属性 AdaptiveFPS 后,视频的最低帧率不会低于 [setMinVideoFpsForTrafficControl] 接口设置的值, 0 值表示不限制。

  • 默认值:无视频帧率最低阈值的控制效果。
  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 相关接口:[enableTrafficControl]。
  • 支持版本:2.17.0 及以上。
  • 使用限制:必须开启流量控制 [enableTrafficControl],并且它的参数 [property] 必须包含属性 AdaptiveFPS,具体可以参考 [ZegoTrafficControlProperty]。
  • 注意事项:如果需要取消该设置值的限制可以设置为 0。

setMinVideoResolutionForTrafficControl:height:channel:

setMinVideoResolutionForTrafficControl:height:channel:
- (void)setMinVideoResolutionForTrafficControl:(int) width height:(int) height channel:(ZegoPublishChannel) channel;
设置流量控制的最低视频分辨率阈值。
Declared in ZegoExpressEngine.h

参数

名称类型描述
widthint流量控制的最低视频分辨率的宽。
heightint流量控制的最低视频分辨率的高。
channelZegoPublishChannel推流通道。

详情

开启流量控制 [enableTrafficControl],并且它的参数 [property] 包含属性 AdaptiveResolution 时,视频的最低分辨率不会低于 [setMinVideoResolutionForTrafficControl] 接口设置的值。 0 值表示不限制。

  • 默认值:无视频分辨率最低阈值的控制效果。
  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 相关接口:[enableTrafficControl]。
  • 支持版本:2.17.0 及以上。
  • 使用限制:必须开启流量控制 [enableTrafficControl],并且它的参数 [property] 必须包含属性 AdaptiveResolution,具体可以参考 [ZegoTrafficControlProperty]。
  • 注意事项:如果需要取消该设置值的限制可以设置分辨率宽高值为 0。

setTrafficControlFocusOn:

setTrafficControlFocusOn:
- (void)setTrafficControlFocusOn:(ZegoTrafficControlFocusOnMode) mode;
设置触发流量控制的关注因素。
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoTrafficControlFocusOnMode选择 LOCAL_ONLY 时,只关注本地网络状况。选择 REMOTE 时,不仅关注本地网络,同时也兼顾远端网络。

详情

通过该接口控制是否因为远端网络状况差而启动流量控制。

  • 默认值:默认 ZegoTrafficControlFounsOnRemote。
  • 调用时机:在创建引擎 [createEngine] 后,在推流 [startPublishingStream] 前调用生效。
  • 相关接口:[enableTrafficControl]。
  • 支持版本:2.4.0 及以上。
  • 使用限制:必须开启流量控制 [enableTrafficControl]。
  • 注意事项:作用于主推流通道 ZegoPublishChannel.Main。

setTrafficControlFocusOn:channel:

setTrafficControlFocusOn:channel:
- (void)setTrafficControlFocusOn:(ZegoTrafficControlFocusOnMode) mode channel:(ZegoPublishChannel) channel;
设置指定推流通道的触发流量控制的关注因素。
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoTrafficControlFocusOnMode选择 LOCAL_ONLY 时,只关注本地网络状况。选择 REMOTE 时,不仅关注本地网络,同时也兼顾远端网络。
channelZegoPublishChannel推流通道。

详情

通过该接口控制是否因为远端网络状况差而启动流量控制。

  • 默认值:默认关闭。
  • 调用时机:在创建引擎 [createEngine] 后,在推流 [startPublishingStream] 前调用生效。
  • 相关接口:[enableTrafficControl]。
  • 支持版本:2.4.0 及以上。
  • 使用限制:必须开启流量控制 [enableTrafficControl]。

setCaptureVolume:

setCaptureVolume:
- (void)setCaptureVolume:(int) volume;
设置推流端采集音量。
Declared in ZegoExpressEngine.h

参数

名称类型描述
volumeint音量增益百分比,范围为 0 ~ 200,默认值为 100,表示为设备原始采集音量的 100%.

详情

此函数用于在设备采集音量的基础上做增益处理,本端用户可控制往远端发送音频流的声音大小。

  • 默认值:默认为 100。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 相关接口:设置拉流音量 [setPlayVolume]。
  • 支持版本:1.13.0 及以上。
  • 使用限制:在推流途中可以动态设置采集音量。

setAudioCaptureStereoMode:

setAudioCaptureStereoMode:
- (void)setAudioCaptureStereoMode:(ZegoAudioCaptureStereoMode) mode;
设置音频采集双声道模式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoAudioCaptureStereoMode双声道采集模式。

详情

此函数用于设置音频的采集声道模式,当开发者开启双声道采集后,使用专门的双声道采集设备,可以采集到双声道的音频数据并进行推流。

  • 业务场景:在一些比较专业的场景里,用户对声音的效果尤为敏感,比如语音电台、乐器演奏,此时就需要对双声道和高音质的支持。
  • 默认值:默认 None,即单声道采集。
  • 调用时机:需要在 [createEngine] 之后,在 [startPublishingStream]、 [startPlayingStream]、 [startPreview]、 [createMediaPlayer]、 [createAudioEffectPlayer] 和 [createRealTimeSequentialDataManager] 之前调用才有效。
  • 相关接口:当推流时需要同时通过 [setAudioConfig] 函数开启双声道音频编码功能。
  • 支持版本:1.15.0 及以上 (iOS/Android/Windows/OHOS);自 2.16.0 开始支持 macOS。
  • 使用限制:如果需要开启双声道采集,还需要满足如下条件:对于 iOS/Android 来说,需要外接支持双声道采集的音频设备并且处于媒体音量下。对于 macOS 来说需要处于媒体音量下。对于 Windows 来说需要外接支持双声道采集的音频设备。

addPublishCdnUrl:streamID:callback:

addPublishCdnUrl:streamID:callback:
- (void)addPublishCdnUrl:(NSString *) targetURL streamID:(NSString *) streamID callback:(nullable ZegoPublisherUpdateCdnUrlCallback) callback;
增加转推至 CDN 的 URL。
Declared in ZegoExpressEngine.h

参数

名称类型描述
targetURLNSString *CDN 转推地址,支持的转推地址格式有 rtmp, rtmps.
streamIDNSString *流 ID。
callbacknullable ZegoPublisherUpdateCdnUrlCallback更新 CDN 转推结果通知。

详情

将 ZEGO RTC 服务器的音视频流转推至自定义的 CDN 内容分发网络,延迟高但是支持高并发拉流。

  • 业务场景:1. 常用于对延迟没有特别高要求的大规模直播场景。2. 由于 ZEGO RTC 服务器本身可配置支持 CDN 内容分发网络,此函数主要为自身拥有 CDN 内容分发服务的开发者使用。3. 此函数支持动态转推至多个 CDN 内容分发网络,因此开发者可以使用此函数来作为 CDN 内容分发服务的一个容灾方案。
  • 调用时机:在调用 [createEngine] 函数创建引擎后。
  • 相关接口:删除转推至 CDN 的 URL [removePublishCdnUrl],结果回调函数 [onPublisherRelayCDNStateUpdate]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:当调用 [enablePublishDirectToCDN] 函数设置为 true 将流直推到 CDN 时,再调用本函数将无效。
  • 注意事项:删除转推至 CDN 的 URL 需要调用 [removePublishCdnUrl],调用 [stopPublishingStream] 不会删除转推至 CDN 的 URL。

addPublishCdnUrl:streamID:timeout:callback:

addPublishCdnUrl:streamID:timeout:callback:
- (void)addPublishCdnUrl:(NSString *) targetURL streamID:(NSString *) streamID timeout:(int) timeout callback:(nullable ZegoPublisherUpdateCdnUrlCallback) callback;
增加转推至 CDN 的 URL。
Declared in ZegoExpressEngine.h

参数

名称类型描述
targetURLNSString *CDN 转推地址,支持的转推地址格式有 rtmp, rtmps.
streamIDNSString *流 ID。
timeoutint超时时间。如果在时间内没有开始转推就回调通知。默认为0,表示不超时,有效范围[5,600],单位秒。小于0会被重置为0,1到4会被重置为5,大于600会被重置为600。
callbacknullable ZegoPublisherUpdateCdnUrlCallback更新 CDN 转推结果通知。

详情

将 ZEGO RTC 服务器的音视频流转推至自定义的 CDN 内容分发网络,延迟高但是支持高并发拉流。

  • 业务场景:1. 常用于对延迟没有特别高要求的大规模直播场景。2. 由于 ZEGO RTC 服务器本身可配置支持 CDN 内容分发网络,此函数主要为自身拥有 CDN 内容分发服务的开发者使用。3. 此函数支持动态转推至多个 CDN 内容分发网络,因此开发者可以使用此函数来作为 CDN 内容分发服务的一个容灾方案。
  • 调用时机:在调用 [createEngine] 函数创建引擎后。
  • 相关接口:删除转推至 CDN 的 URL [removePublishCdnUrl],结果回调函数 [onPublisherRelayCDNStateUpdate]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:当调用 [enablePublishDirectToCDN] 函数设置为 true 将流直推到 CDN 时,再调用本函数将无效。
  • 注意事项:删除转推至 CDN 的 URL 需要调用 [removePublishCdnUrl],调用 [stopPublishingStream] 不会删除转推至 CDN 的 URL。

removePublishCdnUrl:streamID:callback:

removePublishCdnUrl:streamID:callback:
- (void)removePublishCdnUrl:(NSString *) targetURL streamID:(NSString *) streamID callback:(nullable ZegoPublisherUpdateCdnUrlCallback) callback;
删除转推至 CDN 的 URL。
Declared in ZegoExpressEngine.h

参数

名称类型描述
targetURLNSString *CDN 转推地址,支持的转推地址格式有 rtmp.
streamIDNSString *流 ID。
callbacknullable ZegoPublisherUpdateCdnUrlCallback更新 CDN 转推结果通知。

详情

当已经通过 [addPublishCdnUrl] 添加了某个 CDN 转推地址,需要将流停止转推时调用此函数。

  • 调用时机:在调用 [createEngine] 函数创建引擎后,不需要继续转推至 CDN 时。
  • 相关接口:增加转推至 CDN 的 URL [addPublishCdnUrl],结果回调函数 [onPublisherRelayCDNStateUpdate]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:当调用 [enablePublishDirectToCDN] 函数设置为 true 将流直推到 CDN 时,再调用本函数将无效。
  • 注意事项:此函数并不会停止推往 ZEGO RTC 服务器的音视频流。

enablePublishDirectToCDN:config:

enablePublishDirectToCDN:config:
- (void)enablePublishDirectToCDN:(BOOL) enable config:(ZegoCDNConfig *) config;
是否直接推流到 CDN(不经过 ZEGO RTC 服务器)。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启直推 CDN;true 表示开启直推 CDN;false 表示不开启直推 CDN;默认为 false。
configZegoCDNConfig *CDN 配置,若为 nil 则使用 Zego 的后台配置。

详情

是否不经过 ZEGO RTC 服务器直接推流到 CDN。

  • 业务场景:常用于对延迟没有特别高要求的大规模直播场景。
  • 默认值:默认为 false,不开启直推。
  • 调用时机:在创建引擎 [createEngine]后,开始推流[startPublishingStream] 前。
  • 相关接口:动态转推至 CDN 函数 [addPublishCdnUrl]、[removePublishCdnUrl]。
  • 支持版本:1.5.0 及以上。
  • 注意事项:直推 CDN 功能在网络传输过程中不经过 ZEGO 实时音视频云,无法使用 ZEGO 的超低延迟音视频服务。

enablePublishDirectToCDN:config:channel:

enablePublishDirectToCDN:config:channel:
- (void)enablePublishDirectToCDN:(BOOL) enable config:(ZegoCDNConfig *) config channel:(ZegoPublishChannel) channel;
是否直接推流到 CDN(不经过 ZEGO RTC 服务器), 支持设置其他通道的推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启直推 CDN;true 表示开启直推 CDN;false 表示不开启直推 CDN;默认为 false。
configZegoCDNConfig *CDN 配置,若为 nil 则使用 Zego 的后台配置。
channelZegoPublishChannel推流通道。

详情

是否不经过 ZEGO RTC 服务器直接推流到 CDN。

  • 业务场景:常用于对延迟没有特别高要求的大规模直播场景。
  • 默认值:默认为 false,不开启直推。
  • 调用时机:在创建引擎 [createEngine]后,开始推流[startPublishingStream] 前。
  • 相关接口:动态转推至 CDN 函数 [addPublishCdnUrl]、[removePublishCdnUrl]。
  • 支持版本:1.5.0 及以上。
  • 注意事项:直推 CDN 功能在网络传输过程中不经过 ZEGO 实时音视频云,无法使用 ZEGO 的超低延迟音视频服务。

setPublishWatermark:isPreviewVisible:

setPublishWatermark:isPreviewVisible:
- (void)setPublishWatermark:(ZegoWatermark *) watermark isPreviewVisible:(BOOL) isPreviewVisible;
设置推流水印。
Declared in ZegoExpressEngine.h

参数

名称类型描述
watermarkZegoWatermark *水印布局左上角为坐标系原点,区域不能超过编码分辨率设置的大小。若为空表示取消水印。
isPreviewVisibleBOOL是否本地预览能看见水印。

详情

给推流画面设置水印。

  • 业务场景:常用于标识推流来源的场景。
  • 调用时机:在调用 [createEngine] 函数创建引擎后。
  • 支持版本:1.1.0 及以上。
  • 注意事项:水印的布局不能超出推流的视频编码分辨率。可在推流前或推流中途任意时刻设置。

setPublishWatermark:isPreviewVisible:channel:

setPublishWatermark:isPreviewVisible:channel:
- (void)setPublishWatermark:(ZegoWatermark *) watermark isPreviewVisible:(BOOL) isPreviewVisible channel:(ZegoPublishChannel) channel;
设置推流水印,支持设置其他通道的推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
watermarkZegoWatermark *水印布局左上角为坐标系原点,区域不能超过编码分辨率设置的大小。若为空表示取消水印。
isPreviewVisibleBOOL是否本地预览能看见水印。
channelZegoPublishChannel推流通道。

详情

给推流画面设置水印。

  • 业务场景:常用于标识推流来源的场景。
  • 调用时机:在调用 [createEngine] 函数创建引擎后。
  • 支持版本:1.1.0 及以上。
  • 注意事项:水印的布局不能超出推流的视频编码分辨率。可在推流前或推流中途任意时刻设置。

setSEIConfig:

setSEIConfig:
- (void)setSEIConfig:(ZegoSEIConfig *) config;
设置媒体增强补充信息类型。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoSEIConfig *SEI 类型配置。默认使用 ZEGO 定义的 SEI。

详情

SDK 默认使用 ZEGO 自行定义的 SEI 类型包装数据,且此类型是 SEI 标准未规定的类型。当开发者需要使用第三方解码器解码,会导致解不出正确的 SEI,需要调用 [setSEIConfig] 函数更换 SDK 发送 SEI 的类型为 UserUnregister 类型。

  • 业务场景:当开发者使用第三方解码器解码 SEI 时需要执行该函数。
  • 调用时机:在创建引擎 [createEngine]后,开始推流[startPublishingStream] 前。
  • 支持版本:1.18.0 及以上。
  • 使用限制:无。

sendSEI:

sendSEI:
- (void)sendSEI:(NSData *) data;
发送媒体增强补充信息。
Declared in ZegoExpressEngine.h

参数

名称类型描述
dataNSData *SEI 内容。

详情

在推流传输音视频流数据同时,发送流媒体增强补充信息来同步一些其他附加信息。

  • 业务场景:一般用于如同步音乐歌词或视频画面精准布局等场景,可选择使用发送 SEI。
  • 调用时机:在开始推流[startPublishingStream] 后。
  • 相关接口:当推流方发送 SEI 后,拉流方可通过监听 [onPlayerRecvSEI] 的回调获取 SEI 内容。
  • 支持版本:1.1.0 及以上。
  • 使用限制:1 秒钟不要超过30次,SEI 数据长度限制为 4096 字节。
  • 注意事项:1. 由于网络问题有可能丢帧,因此 SEI 信息也有可能丢,为解决这种情况,应该在限制频率内多发几次。2. 即使调用 [enableCamera] 接口关闭摄像头或通过 [mutePublishStreamVideo] 停止发送视频数据,SEI 仍可发送成功;只要拉流端不调用 [mutePlayStreamVideo] 的接口停止拉音频数据,仍可正常接收 SEI。3. 若 SDK 不支持视频模块,但支持 SEI 功能模块,SEI 信息仍可正常发送。

sendSEI:channel:

sendSEI:channel:
- (void)sendSEI:(NSData *) data channel:(ZegoPublishChannel) channel;
指定推流通道号,发送媒体增强补充信息。
Declared in ZegoExpressEngine.h

参数

名称类型描述
dataNSData *SEI 内容。
channelZegoPublishChannel推流通道。

详情

在推流传输音视频流数据同时,发送流媒体增强补充信息来同步一些其他附加信息。

  • 业务场景:一般用于如同步音乐歌词或视频画面精准布局等场景,可选择使用发送 SEI。
  • 调用时机:在开始推流[startPublishingStream] 后。
  • 相关接口:当推流方发送 SEI 后,拉流方可通过监听 [onPlayerRecvSEI] 的回调获取 SEI 内容。
  • 支持版本:1.1.0 及以上。
  • 使用限制:1 秒钟不要超过30次,SEI 数据长度限制为 4096 字节。
  • 注意事项:1. 由于网络问题有可能丢帧,因此 SEI 信息也有可能丢,为解决这种情况,应该在限制频率内多发几次。2. 即使调用 [enableCamera] 接口关闭摄像头或通过 [mutePublishStreamVideo] 停止发送视频数据,SEI 仍可发送成功;只要拉流端不调用 [mutePlayStreamVideo] 的接口停止拉音频数据,仍可正常接收 SEI。3. 若 SDK 不支持视频模块,但支持 SEI 功能模块,SEI 信息仍可正常发送。

sendSEISyncWithCustomVideo:timeStampNs:channel:

sendSEISyncWithCustomVideo:timeStampNs:channel:
- (void)sendSEISyncWithCustomVideo:(NSData *) data timeStampNs:(unsigned long long) timeStampNs channel:(ZegoPublishChannel) channel;
自定义视频采集时发送与当前视频帧同步的媒体增强补充信息。
Declared in ZegoExpressEngine.h

参数

名称类型描述
dataNSData *SEI 内容。
timeStampNsunsigned long long视频帧的索引时间,UNIX 时间戳,单位为纳秒。
channelZegoPublishChannel推流通道。

详情

在使用自定义视频采集时,推流传输视频流数据同时,发送流媒体增强补充信息来同步一些其他附加信息,该信息与当前视频帧同步。

  • 业务场景:一般用于需要播放内容与视频帧强同步的场景,比如视频k歌,视频跟歌词强同步;或者需要精确到帧级别做策略处理的场景。
  • 调用时机:要保证 SEI 与当前视频帧同步,必须在发送视频帧数据前调用。
  • 相关接口:当推流方发送 SEI 后,拉流方可通过监听 [onPlayerRecvSEI] 的回调获取 SEI 内容。
  • 支持版本:2.15.0 及以上。
  • 使用限制:仅用于自定义视频采集;仅支持视频驱动的 SEI 发送;应该尽量避免连续调用此接口发送 SEI;要保证 SEI 与当前视频帧同步,必须与发送自定义视频帧数据接口保持在同一个线程;SEI 数据长度限制为 4096 字节。
  • 注意事项:发送的 SEI 信息跟随视频帧,由于网络问题有可能丢帧,这个时候 SEI 会跟随下一帧视频数据,因此为了保持 SEI 与视频帧同步,应该尽量避免连续发送 SEI;仅在 Android 平台使用 SurfaceTexture 时,需要传时间戳参数 timeStampNs,其他情况该参数无效。

sendAudioSideInfo:timeStampMs:channel:

sendAudioSideInfo:timeStampMs:channel:
- (void)sendAudioSideInfo:(NSData *) data timeStampMs:(double) timeStampMs channel:(ZegoPublishChannel) channel;
发送音频次要信息。
Declared in ZegoExpressEngine.h

参数

名称类型描述
dataNSData *音频次要信息内容。
timeStampMsdouble时间戳,来源于自定义音频处理,单位为毫秒。如果时间戳填0,会跟随当前准备发送的帧发送。
channelZegoPublishChannel推流通道。

详情

在推流传输音频数据同时,发送音频次要信息来同步一些其他附加信息。

  • 业务场景:在轮唱场景中,需要音频数据通道携带附带信息,例如时间戳帮助伴奏对齐,以及需要知道当前演唱的这一段用户是谁,需不需要放大音量等。
  • 调用时机:在开始推流[startPublishingStream] 后。
  • 相关接口:当推流方发送音频次要信息后,拉流方可通过监听 [onPlayerRecvAudioSideInfo] 的回调获取音频次要信息内容。
  • 支持版本:2.19.0 及以上。
  • 使用限制:1. 该函数仅当向 Zego RTC 服务器推流时调用有效并且从 RTC 服务器转推流到 CDN 时也是无效的。2. 音频次要信息数据长度限制为 1024 字节。
  • 注意事项:1. 音频次要信息受音频数据驱动,所以必须要推送音频数据(当通过接口 [setEngineConfig] 开启了 DTX 功能后,音频次要信息可能会丢失)。2. 由于网络问题音频次要信息有可能会缺失,SDK 负责传输但是不保证可靠性。

enableHardwareEncoder:

enableHardwareEncoder:
- (void)enableHardwareEncoder:(BOOL) enable;
开/关硬件编码。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启硬件编码;true 表示开启硬编;false 表示关闭硬编;默认为 false。

详情

推流时是否采用硬件编码的开关,开启硬解编码后会使用 GPU 进行编码,降低 CPU 使用率。

  • 调用时机:在推流前设置才能生效,如果在推流后设置,停推后重新推流可以生效。
  • 支持版本:1.1.0 及以上。
  • 注意事项:由于少部分机型设备硬编支持不是特别好,SDK 默认使用软件编码的方式。若开发者在某些机型测试时发现推大分辨率音视频流时设备发热严重,可考虑调用此函数开启硬编的方式。

setCapturePipelineScaleMode:

setCapturePipelineScaleMode:
- (void)setCapturePipelineScaleMode:(ZegoCapturePipelineScaleMode) mode;
设置采集缩放时机,视频数据是采集的时候立即缩放还是编码时才进行缩放。
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoCapturePipelineScaleMode采集缩放时机。
  • 调用时机:此函数需要在调用 [createEngine] 之后,调用预览 [startPreview] 或推流 [startPublishingStream] 前设置有效。
  • 支持版本:1.1.0 及以上。
  • 注意事项:主要影响是当采集分辨率与编码分辨率不同的时候,是否影响本地预览情况。

setDummyCaptureImagePath:channel:

setDummyCaptureImagePath:channel:
- (void)setDummyCaptureImagePath:(NSString *) filePath channel:(ZegoPublishChannel) channel;
设置关闭摄像头时所推静态图片的路径
Declared in ZegoExpressEngine.h

参数

名称类型描述
filePathNSString *图片路径
channelZegoPublishChannel推流通道。

详情

设置关闭摄像头时所推静态图片的路径。开始正常推流后,调用 enableCamera(false) 时会开始推静态图片,调用 enableCamera(true) 时会结束推静态图片。

  • 业务场景:开发者希望关闭摄像头时,显示静态图片。例如,主播退后台的时候,会主动关闭摄像头,此时观众侧需要展示主播暂时离开的图片。
  • 调用时机:初始化引擎之后,关闭摄像头前调用本 API 进行参数配置,在关闭摄像头后,即可推静态图片。
  • 平台差异: 1. Windows:直接填写图片位置,如"D://dir//image.jpg"。 2. iOS/macOS:如果是完整路径则添加 "file:" 前缀,如:@"file:/var/image.png"。资产则添加 "asset:" 前缀,如:@"asset
    "。 3. Android:如果是完整路径则添加 "file:" 前缀,如:"file:/sdcard/image.png"。“assets” 目录下的图片则添加 "asset:" 前缀,如:"asset
    .png"。 4. Flutter:如果是绝对路径则添加 "file:" 前缀,如:"file:/sdcard/image.png"。“assets” 资源中的图片则添加 "flutter-asset://" 前缀,如:"flutter-asset://assets/watermark.png"。 5. UniApp:仅支持绝对路径,需要添加 "file:" 前缀,如:"file:/sdcard/image.png"。
  • 支持版本:2.9.0 及以上。
  • 使用限制: 1. 图片支持类型为 JPEG/JPG、PNG、BMP、HEIF。 2. 该接口只对 SDK 视频采集有效,对自定义视频采集不生效。 3. 不支持图片路径是网络链接。
  • 注意事项: 1. 本地预览无法看到该静态图片。 2. 外部滤镜、水印、镜像、截图都不会生效。 3. 如果图片宽高比与设定的编码宽高比不一致,会按照编码宽高比进行裁剪。 4. 推音频流一定要再次调用该接口并把图片路径设置为空,避免产生视频计费。

setDummyCaptureImageParams:channel:

setDummyCaptureImageParams:channel:
- (void)setDummyCaptureImageParams:(ZegoDummyCaptureImageParams *) params channel:(ZegoPublishChannel) channel;
设置关闭摄像头时所推静态图片的参数。
Declared in ZegoExpressEngine.h

参数

名称类型描述
paramsZegoDummyCaptureImageParams *虚拟采集图片参数。
channelZegoPublishChannel推流通道。

详情

设置关闭摄像头时所推静态图片的参数。开始正常推流后,调用 enableCamera(false) 时会开始推静态图片,调用 enableCamera(true) 时会结束推静态图片。

  • 业务场景:开发者希望关闭摄像头时,显示静态图片。例如,主播退后台的时候,会主动关闭摄像头,此时观众侧需要展示主播暂时离开的图片。
  • 调用时机:初始化引擎之后,关闭摄像头前调用本 API 进行参数配置,在关闭摄像头后,即可推静态图片。
  • 平台差异: 1. Windows:直接填写图片位置,如"D://dir//image.jpg"。 2. iOS/macOS:如果是完整路径则添加 "file:" 前缀,如:@"file:/var/image.png"。资产则添加 "asset:" 前缀,如:@"asset
    "。 3. Android:如果是完整路径则添加 "file:" 前缀,如:"file:/sdcard/image.png"。“assets” 目录下的图片则添加 "asset:" 前缀,如:"asset
    .png"。 4. Flutter:如果是绝对路径则添加 "file:" 前缀,如:"file:/sdcard/image.png"。“assets” 资源中的图片则添加 "flutter-asset://" 前缀,如:"flutter-asset://assets/watermark.png"。 5. UniApp:仅支持绝对路径,需要添加 "file:" 前缀,如:"file:/sdcard/image.png"。
  • 支持版本:3.19.0 及以上。
  • 使用限制: 1. 图片支持类型为 JPEG/JPG、PNG、BMP、HEIF。 2. 该接口只对 SDK 视频采集有效,对自定义视频采集不生效。 3. 不支持图片路径是网络链接。
  • 注意事项: 1. 本地预览无法看到该静态图片。 2. 外部滤镜、水印、镜像、截图都不会生效。 3. 如果图片宽高比与设定的编码宽高比不一致,会按照编码宽高比进行裁剪。 4. 推音频流一定要再次调用该接口并把图片路径设置为空,避免产生视频计费。

enableH265EncodeFallback:

enableH265EncodeFallback:
- (void)enableH265EncodeFallback:(BOOL) enable;
是否开启 H.265 编码自动降级到 H.264 编码。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启 H.265 编码自动降级到 H.264 编码;true 表示开启;false 表示关闭;默认为 true

详情

使用 H.265 编码方式推流时,是否开启在异常情况下 H.265 编码自动降级到 H.264 编码的策略;开启自动降级后,当不支持 H.265 编码或编码 H.265 失败时,SDK 内部会尝试降级使用 H.264 编码进行推流;关闭自动降级后,当不支持 H.265 编码或编码 H.265 失败时,直接推流失败。

  • 业务场景:在多人连麦直播、秀场直播场景下,使用 H265 编码推流,达到不降低画质的情况下节省 CDN 流量的目的。
  • 默认值:没有调用该接口时,默认为是,即开启 H.265 编码自动降级到 H.264 编码。
  • 调用时机:创建引擎后,调用 [startPublishingStream] 函数推流前。
  • 相关回调:开启 H.265 编码自动降级到 H.264 编码策略后,编码方式变化时会触发 [onPublisherVideoEncoderChanged] 回调。
  • 支持版本:2.12.0 及以上。
  • 注意事项:当推流过程中发生从 H.265 降级到 H.264 编码时,如果正在进行本地视频录制或云录制,会导致产生多个录制文件,需要对此做处理。

isVideoEncoderSupported:

isVideoEncoderSupported:
- (BOOL)isVideoEncoderSupported:(ZegoVideoCodecID) codecID;
是否支持指定视频编码类型。
Declared in ZegoExpressEngine.h

参数

名称类型描述
codecIDZegoVideoCodecID视频编码类型。是否必填:是。

详情

是否支持指定视频编码,主要取决于以下几个方面:硬件型号是否支持硬编、硬件型号性能是否支持软编、SDK 是否带该编码模块。

  • 调用时机:创建引擎后。
  • 支持版本:2.12.0 及以上。
  • 注意事项:建议用户在进行 H.265 编码推流前,先调用本接口获取 H.265 编码支持能力,如果不支持,可以采用其他编码进行推流,比如 H.264。在移动端,SDK 仅支持 H.265 硬件编码,且受机型和硬件能力影响。

返回值

是否支持指定视频编码。取值范围:true 表示支持,可以使用该编码进行推流;false 表示不支持,不可以使用该编码进行推流。

isVideoEncoderSupported:codecBackend:

isVideoEncoderSupported:codecBackend:
- (int)isVideoEncoderSupported:(ZegoVideoCodecID) codecID codecBackend:(ZegoVideoCodecBackend) codecBackend;
是否支持指定的视频编码类型和实现方式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
codecIDZegoVideoCodecID视频编码类型。是否必填:是。
codecBackendZegoVideoCodecBackend编码器的后端实现。是否必填:是。

详情

是否支持指定视频编码,主要取决于以下几个方面:硬件型号是否支持硬编、硬件型号性能是否支持软编、SDK 是否带该编码模块。

  • 调用时机:创建引擎后。
  • 支持版本:3.0.0 及以上。
  • 注意事项:建议用户在进行 H.265 编码推流前,先调用本接口获取 H.265 编码支持能力,如果不支持,可以采用其他编码进行推流,比如 H.264。在移动端,SDK 仅支持 H.265 硬件编码,且受机型和硬件能力影响。

返回值

是否支持指定视频编码格式;0 表示不支持,不可以使用该编码格式进行推流;1 表示支持,可以使用该编码格式进行推流;2 表示未确认,建议稍后再调用本接口。

getVideoEncoderSupported:codecBackend:callback:

getVideoEncoderSupported:codecBackend:callback:
- (void)getVideoEncoderSupported:(ZegoVideoCodecID) codecID codecBackend:(ZegoVideoCodecBackend) codecBackend callback:(nullable ZegoPublisherGetVideoEncoderSupportedCallback) callback;
是否支持指定的视频编码类型和实现方式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
codecIDZegoVideoCodecID视频编码类型。是否必填:是。
codecBackendZegoVideoCodecBackend编码器的后端实现。是否必填:是。
callbacknullable ZegoPublisherGetVideoEncoderSupportedCallback是否支持指定视频编码结果的回调。

详情

是否支持指定视频编码,主要取决于以下几个方面:硬件型号是否支持硬编、硬件型号性能是否支持软编、SDK 是否带该编码模块。

  • 调用时机:创建引擎后。
  • 支持版本:3.23.0 及以上。
  • 注意事项:建议用户在进行 H.265 编码推流前,先调用本接口获取 H.265 编码支持能力,如果不支持,可以采用其他编码进行推流,比如 H.264。在移动端,SDK 仅支持 H.265 硬件编码,且受机型和硬件能力影响。

setAppOrientationMode:

setAppOrientationMode:
- (void)setAppOrientationMode:(ZegoOrientationMode) mode;
设置视频的朝向模式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoOrientationMode视频的朝向模式。

详情

为了简化移动端开发者处理视频画面旋转的复杂度,SDK 支持设置多种视频朝向模式,开发者可以根据场景需求选择不同的模式。

  • 业务场景:使用移动设备进行直播或者视频通话的场景。
  • 默认值:自定义模式。
  • 调用时机:此函数需要在调用 [createEngine] 之后,调用预览 [startPreview] 或推流 [startPublishingStream] 前设置有效。
  • 相关接口:可调用 [setAppOrientation] 函数,设置 App 朝向。
  • 支持版本:2.23.0 及以上。
  • 注意事项: 1. 对所有通道生效。 2. 自适应模式在预览、拉流、混流场景下生效,不支持视频外部采集、媒体播放器、云录制、本地录制,不支持通过 CDN 推拉流场景。

setLowlightEnhancement:channel:

setLowlightEnhancement:channel:
- (void)setLowlightEnhancement:(ZegoLowlightEnhancementMode) mode channel:(ZegoPublishChannel) channel;
设置低照度增强。
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoLowlightEnhancementMode低照度增强模式。
channelZegoPublishChannel推流通道。

详情

根据设置的低照度增强模式,对摄像头采集的画面亮度进行增强,兼容美颜功能。用户可以在预览时观看效果,并实时切换低照度增强模式。

  • 业务场景:推流端环境较暗,或者摄像头设置的帧率较高导致画面偏暗,无法正常显示或识别主体。
  • 默认值:关闭。
  • 调用时机:创建引擎 [createEngine] 后。
  • 支持版本:2.21.0 及以上。

setLowlightEnhancementParams:channel:

setLowlightEnhancementParams:channel:
- (void)setLowlightEnhancementParams:(ZegoExpLowlightEnhancementParams *) params channel:(ZegoPublishChannel) channel;
设置低照度增强参数。
Declared in ZegoExpressEngine.h

参数

名称类型描述
paramsZegoExpLowlightEnhancementParams *低照度增强参数。
channelZegoPublishChannel推流通道。

详情

根据设置的低照度增强模式,对摄像头采集的画面亮度进行增强,兼容美颜功能。用户可以在预览时观看效果,并实时切换低照度增强模式。

  • 业务场景:推流端环境较暗,或者摄像头设置的帧率较高导致画面偏暗,无法正常显示或识别主体。
  • 调用时机:创建引擎 [createEngine] 后。
  • 支持版本:3.19.0 及以上。

setVideoDenoiseParams:channel:

setVideoDenoiseParams:channel:
- (void)setVideoDenoiseParams:(ZegoVideoDenoiseParams *) params channel:(ZegoPublishChannel) channel;
设置视频降噪参数。
Declared in ZegoExpressEngine.h

参数

名称类型描述
paramsZegoVideoDenoiseParams *视频降噪参数。
channelZegoPublishChannel推流通道。

详情

设置视频降噪参数,包括模式和强度。

  • 默认值:关闭。
  • 调用时机:创建引擎 [createEngine] 后。
  • 平台差异:仅支持 iOS及android
  • 支持版本:3.18.0 及以上。

setVideoSource:

setVideoSource:
- (int)setVideoSource:(ZegoVideoSourceType) source;
设置视频采集源。
Declared in ZegoExpressEngine.h

参数

名称类型描述
sourceZegoVideoSourceType视频采集源类型。

详情

设置视频采集源,用于在不同的视频采集源之间进行切换。

  • 业务场景:通常用于需要在不同的视频采集源之间切换的场景下。
  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 支持版本:3.1.0 及以上。
  • 使用限制:无。
  • 注意事项:作用于主推流通道 ZegoPublishChannel.Main。 主路推流通道 ZegoPublishChannel.Main 不支持设置 ZegoVideoSourceType.Player 和 ZegoVideoSourceType.MainPublishChannel 视频输入源类型。

setVideoSource:instanceID:

setVideoSource:instanceID:
- (int)setVideoSource:(ZegoVideoSourceType) source instanceID:(unsigned int) instanceID;
设置视频采集源实例作为视频采集源。
Declared in ZegoExpressEngine.h

参数

名称类型描述
sourceZegoVideoSourceType视频采集源类型。
instanceIDunsigned int视频采集源实例 ID。

详情

设置视频采集源,用于在不同的视频采集源之间进行切换。

  • 业务场景:通常用于需要在不同的视频采集源之间切换的场景下。
  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 支持版本:3.1.0 及以上。
  • 使用限制:无。
  • 注意事项:作用于主推流通道 ZegoPublishChannel.Main。 主路推流通道 ZegoPublishChannel.Main 不支持设置 ZegoVideoSourceType.Player 和 ZegoVideoSourceType.MainPublishChannel 视频输入源类型。

setVideoSource:channel:

setVideoSource:channel:
- (int)setVideoSource:(ZegoVideoSourceType) source channel:(ZegoPublishChannel) channel;
设置指定推流通道的视频采集源。
Declared in ZegoExpressEngine.h

参数

名称类型描述
sourceZegoVideoSourceType视频采集源类型。
channelZegoPublishChannel推流通道。

详情

设置视频采集源,用于在不同的视频采集源之间进行切换。

  • 业务场景:通常用于需要在不同的视频采集源之间切换的场景下。
  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 支持版本:3.1.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 主路推流通道 ZegoPublishChannel.Main 不支持设置 ZegoVideoSourceType.Player 和 ZegoVideoSourceType.MainPublishChannel 视频输入源类型。
  1. 辅路推流通道 ZegoPublishChannel.Aux 使用 ZegoVideoSourceType.Player 和 ZegoVideoSourceType.MainPublishChannel 视频输入源类型时,需要确保主推流通道 ZegoPublishChannel.Main 设备正常工作。
  2. 抢占型视频源不允许在多通道同时使用,例如 ZegoVideoSourceType.Camera、ZegoVideoSourceType.ScreenCapture。
  3. 只有主路使用内部采集,辅路才可复制,且最多支持一路复制。
  4. 设置 ZegoVideoSourceType.Player 视频输入源类型时,请确保 ZegoMediaPlayer 实例创建成功。

setVideoSource:instanceID:channel:

setVideoSource:instanceID:channel:
- (int)setVideoSource:(ZegoVideoSourceType) source instanceID:(unsigned int) instanceID channel:(ZegoPublishChannel) channel;
设置视频采集源实例作为指定推流通道的视频采集源。
Declared in ZegoExpressEngine.h

参数

名称类型描述
sourceZegoVideoSourceType视频采集源类型。
instanceIDunsigned int视频采集源实例 ID。
channelZegoPublishChannel推流通道。

详情

设置视频采集源,用于在不同的视频采集源之间进行切换。

  • 业务场景:通常用于需要在不同的视频采集源之间切换的场景下。
  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 支持版本:3.1.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 主路推流通道 ZegoPublishChannel.Main 不支持设置 ZegoVideoSourceType.Player 和 ZegoVideoSourceType.MainPublishChannel 视频输入源类型。
  1. 辅路推流通道 ZegoPublishChannel.Aux 使用 ZegoVideoSourceType.Player 和 ZegoVideoSourceType.MainPublishChannel 视频输入源类型时,需要确保主推流通道 ZegoPublishChannel.Main 设备正常工作。
  2. 抢占型视频源不允许在多通道同时使用,例如 ZegoVideoSourceType.Camera、ZegoVideoSourceType.ScreenCapture。
  3. 只有主路使用内部采集,辅路才可复制,且最多支持一路复制。
  4. 设置 ZegoVideoSourceType.Player 视频输入源类型时,请确保 ZegoMediaPlayer 实例创建成功。

setAudioSource:

setAudioSource:
- (int)setAudioSource:(ZegoAudioSourceType) source;
设置音频采集源
Declared in ZegoExpressEngine.h

参数

名称类型描述
sourceZegoAudioSourceType音频采集源类型。

详情

设置音频采集源,用于在不同的音频采集源之间进行切换。

  • 业务场景:通常用于需要在不同的音频采集源之间切换的场景下。
  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 支持版本:3.1.0 及以上。
  • 使用限制:无。
  • 注意事项:作用于主路推流通道 ZegoPublishChannel.Main。 主路推流通道 ZegoPublishChannel.Main 不支持设置 ZegoAudioSourceType.MediaPlayer 和 ZegoAudioSourceType.MainPublishChannel 音频输入源类型。

setAudioSource:channel:

setAudioSource:channel:
- (int)setAudioSource:(ZegoAudioSourceType) source channel:(ZegoPublishChannel) channel;
为指定推流通道设置音频采集源
Declared in ZegoExpressEngine.h

参数

名称类型描述
sourceZegoAudioSourceType音频采集源类型。
channelZegoPublishChannel推流通道。

详情

设置音频采集源,用于在不同的音频采集源之间进行切换。

  • 业务场景:通常用于需要在不同的音频采集源之间切换的教育场景下。
  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 支持版本:3.1.0 及以上。
  • 注意事项:1. 主路推流通道 ZegoPublishChannel.Main 不支持设置 ZegoAudioSourceType.MediaPlayer 和 ZegoAudioSourceType.MainPublishChannel 音频输入源类型。
  1. 辅路推流通道 ZegoPublishChannel.Aux 使用 ZegoAudioSourceType.MediaPlayer 和 ZegoAudioSourceType.MainPublishChannel 音频输入源类型时,需要确保主推流通道 ZegoPublishChannel.Main 设备正常工作。 3. 抢占型音源不允许在多通道同时使用,例如 ZegoAudioSourceType.Microphone。
  2. 设置 ZegoAudioSourceType.MediaPlayer 音频输入源类型时,请确保 ZegoMediaPlayer 实例创建成功。

setAudioSource:config:

setAudioSource:config:
- (int)setAudioSource:(ZegoAudioSourceType) source config:(ZegoAudioSourceMixConfig *) config;
设置音频采集源及混音配置
Declared in ZegoExpressEngine.h

参数

名称类型描述
sourceZegoAudioSourceType音频采集源类型。
configZegoAudioSourceMixConfig *音频采集源混音配置。

详情

设置音频采集源,用于在不同的音频采集源之间进行切换。

  • 业务场景:通常用于需要在不同的音频采集源之间切换的场景下。
  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 支持版本:3.1.0 及以上。
  • 使用限制:无。
  • 注意事项:作用于主路推流通道 ZegoPublishChannel.Main。 主路推流通道 ZegoPublishChannel.Main 不支持设置 ZegoAudioSourceType.MediaPlayer 和 ZegoAudioSourceType.MainPublishChannel 音频输入源类型。

enableVideoObjectSegmentation:type:channel:

enableVideoObjectSegmentation:type:channel:
- (void)enableVideoObjectSegmentation:(BOOL) enable type:(ZegoObjectSegmentationType) type channel:(ZegoPublishChannel) channel;
开启主体分割。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启主体分割,默认关闭。
typeZegoObjectSegmentationType主体分割类型。
channelZegoPublishChannel推流通道。

详情

主体分割与传输即在推流端将矩形视频内的主体(多数情况下是人)通过 AI 算法分离出来,并在 RTC 网络中传输、在拉流端渲染的技术。

  • 业务场景:需要将视频中的主体与背景分离的场景,例如混合现实、多人同场互动场景等。
  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 相关回调:通过 [onVideoObjectSegmentationStateChanged] 监听主体分割状态变化。
  • 相关接口:使用 [enableAlphaChannelVideoEncoder] 支持对分割后的主体的透明背景编码,再进行推流,则可以在拉流端渲染主体带透明背景效果。
  • 支持版本:3.4.0 及以上。
  • 使用限制:开启主体分割为耗时操作,轻勿频繁开启关闭。
  • 注意事项: 1. 在创建引擎 [createEngine] 后调用生效。
  1. 如想监听 [onVideoObjectSegmentationStateChanged] 回调,需要调用预览 [startPreview] 或推流 [startPublishingStream]。

enableVideoObjectSegmentation:config:channel:

enableVideoObjectSegmentation:config:channel:
- (void)enableVideoObjectSegmentation:(BOOL) enable config:(ZegoObjectSegmentationConfig *) config channel:(ZegoPublishChannel) channel;
开启主体分割。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启主体分割,默认关闭。
configZegoObjectSegmentationConfig *主体分割配置。
channelZegoPublishChannel推流通道。

详情

主体分割与传输即在推流端将矩形视频内的主体(多数情况下是人)通过 AI 算法分离出来,并在 RTC 网络中传输、在拉流端渲染的技术。

  • 业务场景:需要将视频中的主体与背景分离的场景,例如混合现实、多人同场互动场景等。
  • 调用时机:在创建引擎 [createEngine] 后调用生效。
  • 相关回调:当开启或者关闭主体分割后,通过 [onVideoObjectSegmentationStateChanged] 可以收到主体分割状态的通知。
  • 相关接口:使用 [enableAlphaChannelVideoEncoder] 支持对分割后的主体的透明背景编码,再进行推流,则可以在拉流端渲染主体带透明背景效果。
  • 支持版本:3.6.0 及以上。
  • 使用限制:开启主体分割为耗时操作,轻勿频繁开启关闭。
  • 注意事项:该功能需要特殊编包,请联系 ZEGO 技术支持。

enableAlphaChannelVideoEncoder:alphaLayout:channel:

enableAlphaChannelVideoEncoder:alphaLayout:channel:
- (void)enableAlphaChannelVideoEncoder:(BOOL) enable alphaLayout:(ZegoAlphaLayoutType) alphaLayout channel:(ZegoPublishChannel) channel;
开启视频编码器透明通道支持。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启视频编码器透明通道支持,默认关闭。
alphaLayoutZegoAlphaLayoutType指定 Alpha 通道数据的布局位置。
channelZegoPublishChannel推流通道。

详情

在推流端开启视频编码器透明通道支持,将分割后的视频主体进行编码,用于推流。

  • 业务场景:需要将视频中的主体与背景分离的场景,例如混合现实、多人同场互动场景等。
  • 调用时机:创建引擎后。
  • 支持版本:3.4.0 及以上。

enableVideoEncoderEnhancement:enhanceLevel:channel:

enableVideoEncoderEnhancement:enhanceLevel:channel:
- (void)enableVideoEncoderEnhancement:(BOOL) enable enhanceLevel:(float) enhanceLevel channel:(ZegoPublishChannel) channel;
开启视频编码增加能力。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启;true 表示开启;false 表示关闭。
enhanceLevelfloat增强等级[0.0,1.5],推荐0.9。
channelZegoPublishChannel推流通道。

详情

可通过调用本函数开启/关闭视频编码增强。

  • 业务场景:常用于视频通话、直播等场景。
  • 默认值:未调用此接口时,默认关闭视频编码增强。
  • 调用时机:需要在 [createEngine] 之后调用才有效。
  • 支持版本:3.23.0 及以上。

setCameraStabilizationMode:channel:

setCameraStabilizationMode:channel:
- (void)setCameraStabilizationMode:(int) mode channel:(ZegoPublishChannel) channel;
设置摄像机稳定模式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeint摄像机视频稳定模式。
iOS:有关详细信息,请参阅 Apple AVCaptureVideoStabilizationMode 定义。默认值为 0。
Android:AUTO:-1, OFF:0。默认值为 0。
channelZegoPublishChannel推流通道。

详情

设置摄像机稳定模式。

  • 业务场景:用户可以通过使用此接口设置摄像机稳定模式,削弱摄像机抖动对视频采集造成影响。
  • 调用时机:在创建引擎 [createEngine] 后调用。
  • 平台差异:仅支持 iPhone、Android。
  • 支持版本:3.13.0 及以上。
  • 使用限制:仅支持视频内部采集。

enableAuxBgmBalance:

enableAuxBgmBalance:
- (void)enableAuxBgmBalance:(BOOL) enable;
开启或关闭根据伴奏音量,自适应调整人声音量。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL开启或关闭根据伴奏音量,自适应调整人声音量。

详情

开启或关闭根据伴奏音量,自适应调整人声音量,使人声与伴奏音量均衡。默认关闭。

  • 调用时机:在创建引擎 [createEngine] 后调用。
  • 支持版本:3.18.0 及以上。
  • 使用限制:调用媒体播放器 [EnableAux] 接口开启混音,此接口才生效。

enableFaceDetection:channel:

enableFaceDetection:channel:
- (void)enableFaceDetection:(BOOL) enable channel:(ZegoPublishChannel) channel;
开启或关闭人脸检测。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL开启或关闭人脸检测。
channelZegoPublishChannel推流通道。

详情

开启或关闭人脸检测。默认开启。

  • 调用时机:在创建引擎 [createEngine] 后调用。
  • 相关回调:检测结果会通过 [onPublisherFaceDetectInfo] 回调。
  • 支持版本:3.20.0 及以上。
  • 使用限制:在开启自定义视频采集时,该功能无效。

startPlayingStream:canvas:

startPlayingStream:canvas:
- (void)startPlayingStream:(NSString *) streamID canvas:(ZegoCanvas *) canvas;
开始拉流(从 ZEGO RTC 网络)。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID,长度不超过 256 字节的字符串。
注意事项:
仅支持数字,英文字符 和 '-', '_'。
canvasZegoCanvas *用于显示拉流画面的视图,视图设置为 [nil] 时不显示视频,只播放音频。该参数可以设置视图显示模式(viewMode)和背景色。

详情

从 ZEGO RTC 服务器拉取远端用户的音视频流进行互通。

  • 业务场景:在实时连麦场景下,开发者可通过监听 [onRoomStreamUpdate] 事件回调来获取所在房间内新增的流信息,并调用此接口传入 "streamID" 进行拉流操作。
  • 调用时机:调用 [loginRoom] 加入房间后调用该函数。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 开发者可通过再次调用此函数实现切换拉流 canvas 的操作(streamID 必须一样)。同一条流只能在唯一的视图中拉取展示,如果调用 [startPlayingStream] 传入相同的 "streamID" 和不同的视图,画面只会在新视图展现。2. 首次拉流时如果因网络原因拉流失败或拉流中断,SDK 会在 20min 内多次尝试重连并拉流。3. 在网络质量不佳的情况下,用户拉流可能出现中断,SDK 会尝试重连并拉流,可通过监听 [onPlayerStateUpdate] 事件来获知当前拉流状态以及错误信息。详情请参考 https://doc-zh.zego.im/faq/reconnect 4. 如果拉取不存在的 "streamID",SDK 会持续尝试拉取,在该 streamID 对应的音视频流被成功推送后,该流可以真正被拉取到。

startPlayingStream:canvas:config:

startPlayingStream:canvas:config:
- (void)startPlayingStream:(NSString *) streamID canvas:(ZegoCanvas *) canvas config:(ZegoPlayerConfig *) config;
开始拉流(从 ZEGO RTC 服务器或第三方 CDN),支持多房间模式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID,长度不超过 256 字节的字符串。
注意事项:
仅支持数字,英文字符 和 '-', '_'。
canvasZegoCanvas *用于显示拉流画面的视图,视图设置为 [nil] 时不显示视频,只播放音频。该参数可以设置视图显示模式(viewMode)和背景色。
configZegoPlayerConfig *拉流进阶配置, [ZegoPlayerConfig] 中房间 [roomID] 为登录的房间ID。

详情

从 ZEGO RTC 服务器或第三方 CDN 拉取远端用户的音视频流进行互通。

  • 业务场景:在实时连麦或直播场景下,开发者可通过监听 [onRoomStreamUpdate] 事件回调来获取所在房间内新增的流信息,并调用此接口传入 "streamID" 进行拉流操作。
  • 调用时机:调用 [loginRoom] 加入房间后调用该函数。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 开发者可通过再次调用此函数实现切换拉流 canvas 的操作(streamID 必须一样)。同一条流只能在唯一的视图中拉取展示,如果调用 [startPlayingStream] 传入相同的 "streamID" 和不同的视图,画面只会在新视图展现。2. 首次拉流时如果因网络原因拉流失败或拉流中断,SDK 会在 20min 内多次尝试重连并拉流。3. 在网络质量不佳的情况下,用户拉流可能出现中断,SDK 会尝试重连并拉流,可通过监听 [onPlayerStateUpdate] 事件来获知当前拉流状态以及错误信息。详情请参考 https://doc-zh.zego.im/faq/reconnect 4. 如果拉取不存在的 "streamID",SDK 会持续尝试拉取,在该 streamID 对应的音视频流被成功推送后,该流可以真正被拉取到。

startPlayingStream:

startPlayingStream:
- (void)startPlayingStream:(NSString *) streamID;
开始拉流(从 ZEGO RTC 服务器),不带 Canvas 参数,更适用于纯音频流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID,长度不超过 256 字节的字符串。
注意事项:
仅支持数字,英文字符 和 '-', '_'。

详情

从 ZEGO RTC 服务器拉取远端用户的音频流进行互通。

  • 业务场景:在实时连麦场景下,开发者可通过监听 [onRoomStreamUpdate] 事件回调来获取所在房间内新增的流信息,并调用此接口传入 "streamID" 进行拉流操作。
  • 调用时机:调用 [loginRoom] 加入房间后调用该函数。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 首次拉流时如果因网络原因拉流失败或拉流中断,SDK 会在 20min 内多次尝试重连并拉流。2. 在网络质量不佳的情况下,用户拉流可能出现中断,SDK 会尝试重连并拉流,可通过监听 [onPlayerStateUpdate] 事件来获知当前拉流状态以及错误信息。详情请参考 https://doc-zh.zego.im/faq/reconnect 3. 如果拉取不存在的 "streamID",SDK 会持续尝试拉取,在该 streamID 对应的音频流被成功推送后,该流可以真正被拉取到。

startPlayingStream:config:

startPlayingStream:config:
- (void)startPlayingStream:(NSString *) streamID config:(ZegoPlayerConfig *) config;
开始拉流(从 ZEGO RTC 服务器或第三方 CDN),不带 Canvas 参数,更适用于纯音频流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID,长度不超过 256 字节的字符串。
注意事项:
仅支持数字,英文字符 和 '-', '_'。
configZegoPlayerConfig *拉流进阶配置。

详情

从 ZEGO RTC 服务器或第三方 CDN 拉取远端用户的音频流进行互通。

  • 业务场景:在实时连麦或直播下,开发者可通过监听 [onRoomStreamUpdate] 事件回调来获取所在房间内新增的流信息,并调用此接口传入 "streamID" 进行拉流操作。
  • 调用时机:调用 [loginRoom] 加入房间后调用该函数。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 首次拉流时如果因网络原因拉流失败或拉流中断,SDK 会在 20min 内多次尝试重连并拉流。2. 在网络质量不佳的情况下,用户拉流可能出现中断,SDK 会尝试重连并拉流,可通过监听 [onPlayerStateUpdate] 事件来获知当前拉流状态以及错误信息。详情请参考 https://doc-zh.zego.im/faq/reconnect 3. 如果拉取不存在的 "streamID",SDK 会持续尝试拉取,在该 streamID 对应的音视频流被成功推送后,该流可以真正被拉取到。

startPlayingStreamInScene:canvas:config:

startPlayingStreamInScene:canvas:config:
- (void)startPlayingStreamInScene:(NSString *) streamID canvas:(ZegoCanvas *) canvas config:(ZegoScenePlayerConfig *) config;
使用范围场景功能时,开始拉流(从 ZEGO RTC 服务器或第三方 CDN)。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID,长度不超过 256 字节的字符串。
注意事项:
仅支持数字,英文字符 和 '-', '_'。
canvasZegoCanvas *用于显示拉流画面的视图,视图设置为 [nil] 时不显示视频,只播放音频。该参数可以设置视图显示模式(viewMode)和背景色。
configZegoScenePlayerConfig *场景拉流进阶配置。

详情

从 ZEGO RTC 服务器或第三方 CDN 拉取远端用户的音视频流进行互通。

  • 业务场景:使用范围场景功能时,用户可以使用该接口自定义拉流。
  • 调用时机:调用 [loginScene] 加入场景后调用该函数。
  • 支持版本:3.4.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 开发者可通过再次调用此函数实现切换拉流 canvas 的操作(streamID 必须一样)。同一条流只能在唯一的视图中拉取展示,如果调用 [startPlayingStreamInScene] 传入相同的 "streamID" 和不同的视图,画面只会在新视图展现。
  1. 首次拉流时如果因网络原因拉流失败或拉流中断,SDK 会在 20min 内多次尝试重连并拉流。
  2. 在网络质量不佳的情况下,用户拉流可能出现中断,SDK 会尝试重连并拉流,可通过监听 [onPlayerStateUpdate] 事件来获知当前拉流状态以及错误信息。详情请参考 https://doc-zh.zego.im/faq/reconnect
  3. 如果拉取不存在的 "streamID",SDK 会持续尝试拉取,在该 streamID 对应的音视频流被成功推送后,该流可以真正被拉取到。

startPlayingStreamInScene:config:

startPlayingStreamInScene:config:
- (void)startPlayingStreamInScene:(NSString *) streamID config:(ZegoScenePlayerConfig *) config;
使用范围场景功能时,开始拉流(从 ZEGO RTC 服务器或第三方 CDN),不带 Canvas 参数,更适用于纯音频流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID,长度不超过 256 字节的字符串。
注意事项:
仅支持数字,英文字符 和 '-', '_'。
configZegoScenePlayerConfig *场景拉流进阶配置。

详情

从 ZEGO RTC 服务器或第三方 CDN 拉取远端用户的音视频流进行互通。

  • 业务场景:使用范围场景功能时,用户可以使用该接口自定义拉流。
  • 调用时机:调用 [loginScene] 加入场景后后调用该函数。
  • 支持版本:3.3.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 开发者可通过再次调用此函数实现切换拉流 canvas 的操作(streamID 必须一样)。同一条流只能在唯一的视图中拉取展示,如果调用 [startPlayingStreamInScene] 传入相同的 "streamID" 和不同的视图,画面只会在新视图展现。2. 首次拉流时如果因网络原因拉流失败或拉流中断,SDK 会在 20min 内多次尝试重连并拉流。3. 在网络质量不佳的情况下,用户拉流可能出现中断,SDK 会尝试重连并拉流,可通过监听 [onPlayerStateUpdate] 事件来获知当前拉流状态以及错误信息。详情请参考 https://doc-zh.zego.im/faq/reconnect 4. 如果拉取不存在的 "streamID",SDK 会持续尝试拉取,在该 streamID 对应的音视频流被成功推送后,该流可以真正被拉取到。

switchPlayingStream:toStreamID:config:

switchPlayingStream:toStreamID:config:
- (void)switchPlayingStream:(NSString *) fromStreamID toStreamID:(NSString *) toStreamID config:(ZegoPlayerConfig *) config;
从拉某条流切换为拉另外的流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
fromStreamIDNSString *流 ID,长度不超过 256 字节的字符串。
注意事项:
仅支持数字,英文字符 和 '-', '_'。
toStreamIDNSString *流 ID,长度不超过 256 字节的字符串。
注意事项:
仅支持数字,英文字符 和 '-', '_'。
configZegoPlayerConfig *拉流进阶配置。

详情

从拉某条 flv 流平滑的切换到另外一条 flv 流。

  • 业务场景:针对同一条流,可能会存在多路不同分辨率的流,在网络质量变差的时候,为了保证拉流质量,拉流端可以选择从高分辨率流切换到低分辨率的流。
  • 调用时机:调用 [startPlayingStream] 拉了某条流后。
  • 相关回调: 1. 可以通过 [onPlayerSwitched] 事件来获取切换请求的结果。
  1. 当切换流成功时,可以通过 [onPlayerStateUpdate] 事件来获知当前拉流状态。
  2. 当切换流失败时,不一定有 [onPlayerStateUpdate] 事件通知。
  • 支持版本:3.16.0 及以上。
  • 使用限制:只支持 flv 协议的流。

stopPlayingStream:

stopPlayingStream:
- (void)stopPlayingStream:(NSString *) streamID;
停止拉流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID。

详情

停止从 ZEGO RTC 服务器拉取远端用户的音视频流。

  • 业务场景:在实时连麦场景下,开发者可通过监听 [onRoomStreamUpdate] 事件回调来获取所在房间内删除的流信息,并调用此接口传入 "streamID" 进行停止拉流操作。
  • 调用时机:调用 [loginRoom] 加入房间后调用该函数。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 停止拉流后对此条流此前设置的属性如 [setPlayVolume]、[mutePlayStreamAudio]、[mutePlayStreamVideo] 等拉流相关的配置都会失效,需要在下次拉流之前重新设置。 2.停止拉流后,iOS平台的视图默认会清除最后一帧,保持为视图的背景色。Android 平台视图默认保持在最后一帧,如果需要清除最后一帧,请联系 ZEGO 技术支持。

setPlayStreamDecryptionKey:streamID:

setPlayStreamDecryptionKey:streamID:
- (void)setPlayStreamDecryptionKey:(NSString *) key streamID:(NSString *) streamID;
设置拉流解密密钥。
Declared in ZegoExpressEngine.h

参数

名称类型描述
keyNSString *解密密钥,注意密钥长度仅支持 16/24/32 字节。
streamIDNSString *流 ID。

详情

拉流时会根据设置的密匙解密音视频数据。

  • 业务场景:常用于对音视频通话安全性要求较高的场景。
  • 调用时机:[createEngine]后,拉流后可随时变更。
  • 相关接口:[setPublishStreamEncryptionKey] 设置推流加密密匙。
  • 支持版本:1.19.0 及以上。
  • 使用限制:该函数仅当从 ZEGO RTC 或 L3 服务器拉流时调用有效。
  • 注意事项:推流端有设置加密才能调用此函数。调用 [stopPlayingStream] 或 [logoutRoom] 都将会清空解密密钥。

setPlayStreamCrossAppInfo:streamID:

setPlayStreamCrossAppInfo:streamID:
- (void)setPlayStreamCrossAppInfo:(ZegoCrossAppInfo *) info streamID:(NSString *) streamID;
设置跨 App 拉流信息。
Declared in ZegoExpressEngine.h

参数

名称类型描述
infoZegoCrossAppInfo *跨 App 拉流信息。
streamIDNSString *流 ID。

详情

拉流前或拉流重试时,通过该信息鉴权。

  • 业务场景:用于跨 App 拉流等场景。
  • 调用时机:[createEngine]后,拉流后可随时变更。
  • 支持版本:2.19.0 及以上。
  • 使用限制:该函数仅当从 ZEGO RTC 服务器拉流时调用有效。
  • 注意事项:调用 [stopPlayingStream] 或 [logoutRoom] 都将会清空拉流信息。

takePlayStreamSnapshot:callback:

takePlayStreamSnapshot:callback:
- (void)takePlayStreamSnapshot:(NSString *) streamID callback:(ZegoPlayerTakeSnapshotCallback) callback;
拉流画面截图。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *要截图的流 ID。
callbackZegoPlayerTakeSnapshotCallback拉流画面截图结果回调。

详情

对指定拉流ID画面截图。

  • 调用时机:[startPlayingStream]后调用。
  • 相关回调:[onPlayerTakeSnapshotResult] 截图数据回调。
  • 支持版本:1.17.0 及以上。
  • 使用限制:无。

setPlayVolume:streamID:

setPlayVolume:streamID:
- (void)setPlayVolume:(int) volume streamID:(NSString *) streamID;
设置拉流音量。
Declared in ZegoExpressEngine.h

参数

名称类型描述
volumeint音量百分比,取值范围为 0 ~ 200,默认值为 100。
streamIDNSString *流 ID。

详情

设置拉流的声音大小,本端用户可控制音频流的播放音量。

  • 调用时机:[startPlayingStream] 后调用。
  • 相关接口:[setAllPlayStreamVolume] 设置所有拉流音量。
  • 支持版本:1.16.0 及以上。
  • 使用限制:无。
  • 注意事项:停止拉流后,再次拉流需要重新设置。此函数与 [setAllPlayStreamVolume] 函数相互覆盖,最后一个调用生效。

setAllPlayStreamVolume:

setAllPlayStreamVolume:
- (void)setAllPlayStreamVolume:(int) volume;
设置所有拉流音量。
Declared in ZegoExpressEngine.h

参数

名称类型描述
volumeint音量百分比,取值范围为 0 ~ 200,默认值为 100。

详情

此函数用于设置所有拉流的声音大小,本端用户可控制所有音频流的播放音量。

  • 调用时机:[startPlayingStream]后调用。
  • 相关接口:可使用 [setPlayVolume] 设置指定音视频流的音量。
  • 支持版本:2.3.0 及以上。
  • 使用限制:无。
  • 注意事项:与setPlayVolume函数相互覆盖,最后一个调用生效。

setPlayStreamVideoType:streamID:

setPlayStreamVideoType:streamID:
- (void)setPlayStreamVideoType:(ZegoVideoStreamType) streamType streamID:(NSString *) streamID;
设置播放视频流类型。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamTypeZegoVideoStreamType视频流类型。
streamIDNSString *流 ID。

详情

当推流方通过 [setVideoConfig] 设置了 codecID 为 SVC 时,拉流方可以动态设置选用不同的流类型(小分辨率为标准图层的二分之一)。

  • 业务场景:一般情况下,在网络较弱或者渲染的 UI 窗体较小的情况下,可以选择使用拉取小分辨率的视频来达到节省带宽的目的。
  • 调用时机:[createEngine] 后可调用。
  • 支持版本:2.3.0 及以上。
  • 使用限制:无。

setPlayStreamBufferIntervalRange:min:max:

setPlayStreamBufferIntervalRange:min:max:
- (void)setPlayStreamBufferIntervalRange:(NSString *) streamID min:(unsigned int) min max:(unsigned int) max;
设置拉流播放缓存自适应调整的区间范围。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID。
minunsigned int缓存自适应区间下限,单位毫秒。默认值为 0ms。
maxunsigned int缓存自适应区间上限,单位毫秒。默认值为 4000ms。

详情

设置拉流时 SDK 内部缓存自适应调整的区间范围 0-4000ms。

  • 业务场景:一般在网络环境较差的情况下,调整增大拉流的播放缓存,会显著减少音视频卡顿,但会增大延迟。
  • 调用时机:[createEngine] 后,如果有设置过,则每次重新拉流时都需要重新设置。
  • 支持版本:2.1.0 及以上。
  • 使用限制:无。
  • 注意事项:当开发者设置的缓存区间上限超过 4000ms 时,会取值 4000 ms。当开发者设置的缓存区间上限小于缓存区间下限时,会自动将上限取值为下限。

setPlayStreamFocusOn:

setPlayStreamFocusOn:
- (void)setPlayStreamFocusOn:(NSString *) streamID;
设置拉音视频流优先级的权重。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID。

详情

设置拉音视频流优先级的权重。

  • 业务场景:当开发者业务上,需要对某音视流优先保证质量时(纯音频流下请勿使用),可使用此接口。例如:上课场景,学生拉多路流,则可设置老师流高优先级。
  • 调用时机:[startPlayingStream]之后 。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:默认所有音视频流的权重相同。只能设置一路流是高优先级的,以最后设置的为准。流停止之后自动恢复初始状态,所有流的权重相同。在本地网络不好的时候,保证focus流的同时,可能造成其他的卡顿更多。

mutePlayStreamAudio:streamID:

mutePlayStreamAudio:streamID:
- (void)mutePlayStreamAudio:(BOOL) mute streamID:(NSString *) streamID;
拉流是否可接收指定音频数据。
Declared in ZegoExpressEngine.h

参数

名称类型描述
muteBOOL拉流时是否可以接收指定远端用户的音频数据,“true” 表示禁止,“false” 表示接收,默认值为 “false”。
streamIDNSString *流 ID。

详情

在实时音视频互动过程中,本地用户可根据需要,通过此函数控制拉流时是否接收指定远端用户的音频数据,当开发者不接收音频收据时,可降低硬件和网络的开销。

  • 业务场景:当开发者需要快速关闭、恢复远端音频时,可调用此函数。相比重新拉流,能极大降低耗时,提升互动体验。
  • 调用时机:在调用 [createEngine] 后可调用此函数。
  • 相关接口:可调用 [muteAllPlayStreamAudio] 函数控制是否接收所有音频数据。必须当 [muteAllPlayStreamAudio] 和 [mutePlayStreamAudio] 两个函数同时设置为 "false" 时,本地用户拉流时才能接收远端用户的音频数据:1. 当调用 [muteAllPlayStreamAudio(true)] 函数时,全局生效,即本地用户会禁止接收所有远端用户的音频数据,此时无论在 [muteAllPlayStreamAudio] 之前还是之后调用 [mutePlayStreamAudio] 函数都不生效。2. 当调用 [muteAllPlayStreamAudio(false)] 函数时,本地用户可以接收所有远端用户的音频数据,此时可再通过 [mutePlayStreamAudio] 函数控制是否接收单条音频数据。调用 [mutePlayStreamAudio(true, streamID)] 函数则本地用户可以接收该 "streamID" 之外的其他音频数据;调用 [mutePlayStreamAudio(false, streamID)] 函数则本地用户可以接收 "streamID" 的音频数据。
  • 支持版本:1.1.0 及以上。
  • 注意事项: 1. 与 [muteAllPlayAudioStreams] 一起使用时,可以互相覆盖配置。
  1. 与 [muteAllPlayStreamAudio] 一起使用时,只有当 [muteAllPlayStreamAudio] 函数设置为 “false”时,此函数才有效。
  2. 停止拉流后对此条流此前设置的属性如 [setPlayVolume]、[mutePlayStreamAudio]、[mutePlayStreamVideo] 等拉流相关的配置都会失效,需要在下次拉流之前重新设置。

mutePlayStreamVideo:streamID:

mutePlayStreamVideo:streamID:
- (void)mutePlayStreamVideo:(BOOL) mute streamID:(NSString *) streamID;
拉流是否可接收指定视频数据。
Declared in ZegoExpressEngine.h

参数

名称类型描述
muteBOOL拉流时是否可以接收指定远端用户的视频数据,“true” 表示禁止,“false” 表示接收,默认值为 “false”。SDK 内部自动拉取的流默认值为 false。
streamIDNSString *流 ID。

详情

在实时音视频互动过程中,本地用户可根据需要,通过此函数控制拉流时是否接收指定远端用户的视频数据,当开发者不接收视频数据时,可降低硬件和网络的开销。

  • 业务场景:当开发者需要快速关闭、恢复观看远端视频画面时,可调用此函数。相比重新拉流,能极大降低耗时,提升互动体验。
  • 调用时机:在调用 [createEngine] 后可调用此函数。
  • 相关接口:可调用 [muteAllPlayStreamVideo] 函数控制是否接收所有视频数据。必须当 [muteAllPlayStreamVideo] 和 [mutePlayStreamVideo] 两个函数同时设置为 "false" 时,本地用户拉流时才能接收远端用户的视频数据:1. 当调用 [muteAllPlayStreamVideo(true)] 函数时,全局生效,即本地用户会禁止接收所有远端用户的视频数据,此时无论在 [muteAllPlayStreamVideo] 之前还是之后调用 [mutePlayStreamVideo] 函数都不生效。2. 当调用 [muteAllPlayStreamVideo(false)] 函数时,本地用户可以接收所有远端用户的视频数据,此时可再通过 [mutePlayStreamVideo] 函数控制是否接收单条视频数据。调用 [mutePlayStreamVideo(true, streamID)] 函数则本地用户可以接收该 "streamID" 之外的其他视频数据;调用 [mutePlayStreamVideo(false, streamID)] 函数则本地用户可以接收 "streamID" 的视频数据。
  • 支持版本:1.1.0 及以上。
  • 注意事项: 1. 与 [muteAllPlayAudioStreams] 一起使用时,可以互相覆盖配置。
  1. 与 [muteAllPlayStreamVideo] 一起使用时,只有当 [muteAllPlayStreamVideo] 函数设置为 “false”时,此函数才有效。
  2. 当指定不接收视频流数据时,视图默认保持在最后一帧,如果需要清除最后一帧,请联系 ZEGO 技术支持。
  3. 停止拉流后对此条流此前设置的属性如 [setPlayVolume]、[mutePlayStreamAudio]、[mutePlayStreamVideo] 等拉流相关的配置都会失效,需要在下次拉流之前重新设置。

muteAllPlayStreamAudio:

muteAllPlayStreamAudio:
- (void)muteAllPlayStreamAudio:(BOOL) mute;
拉流是否接收所有音频数据。(当设置为true时, 调用[mutePlayStreamAudio]不会生效)
Declared in ZegoExpressEngine.h

参数

名称类型描述
muteBOOL拉流时是否可以接收所有远端用户的音频数据,“true” 表示禁止,“false” 表示接收,默认值为 “false”。

详情

在实时音视频互动过程中,本地用户可根据需要,通过此函数控制拉流时是否接收所有远端用户的音频数据(包括在调用该函数后新加入房间的用户所推的音频流)。默认情况下,用户加入房间后可以接收所有远端用户推送的音频数据。当开发者不接收音频收据时,可降低硬件和网络的开销

  • 业务场景:当开发者需要快速关闭、恢复远端音频时,可调用此函数。相比重新拉流,能极大降低耗时,提升互动体验。
  • 调用时机:在调用 [createEngine] 后可调用此函数。
  • 相关接口:可调用 [mutePlayStreamAudio] 函数控制是否接收单条音频数据。必须当 [muteAllPlayStreamAudio] 和 [mutePlayStreamAudio] 两个函数同时设置为 "false" 时,本地用户拉流时才能接收远端用户的音频数据:1. 当调用 [muteAllPlayStreamAudio(true)] 函数时,全局生效,即本地用户会禁止接收所有远端用户的音频数据,此时无论在 [muteAllPlayStreamAudio] 之前还是之后调用 [mutePlayStreamAudio] 函数都不生效。 2. 当调用 [muteAllPlayStreamAudio(false)] 函数时,本地用户可以接收所有远端用户的音频数据,此时可再通过 [mutePlayStreamAudio] 函数控制是否接收单条音频数据。调用 [mutePlayStreamAudio(true, streamID)] 函数则本地用户可以接收该 "streamID" 之外的其他音频数据;调用 [mutePlayStreamAudio(false, streamID)] 函数则本地用户可以接收 "streamID" 的音频数据。
  • 支持版本:2.4.0 及以上。
  • 注意事项:此接口在 SDK 生命周期内不能和 [muteAllPlayAudioStreams] 混用。

muteAllPlayAudioStreams:

muteAllPlayAudioStreams:
- (void)muteAllPlayAudioStreams:(BOOL) mute;
拉流是否接收所有音频数据。
Declared in ZegoExpressEngine.h

参数

名称类型描述
muteBOOL拉流时是否可以接收所有远端用户的音频数据,“true” 表示禁止,“false” 表示接收,默认值为 “false”。

详情

在实时音视频互动过程中,本地用户可根据需要,通过此函数控制拉流时是否接收所有远端用户的音频数据(包括在调用该函数后新加入房间的用户所推的音频流)。默认情况下,用户加入房间后可以接收所有远端用户推送的音频数据。当开发者不接收音频收据时,可降低硬件和网络的开销

  • 业务场景:当开发者需要快速关闭、恢复远端音频时,可调用此函数。相比重新拉流,能极大降低耗时,提升互动体验。
  • 调用时机:在调用 [createEngine] 后可调用此函数。
  • 相关接口:可调用 [mutePlayStreamAudio] 函数控制是否接收单条音频数据。
  • 支持版本:3.10.0 及以上。
  • 注意事项:此接口在 SDK 生命周期内不能和 [muteAllPlayStreamAudio] 混用。

muteAllPlayStreamVideo:

muteAllPlayStreamVideo:
- (void)muteAllPlayStreamVideo:(BOOL) mute;
拉流是否可接收所有视频数据。(当设置为true时, 调用[mutePlayStreamVideo]不会生效)
Declared in ZegoExpressEngine.h

参数

名称类型描述
muteBOOL拉流时是否可以接收所有远端用户的视频数据,“true” 表示禁止,“false” 表示接收,默认值为 “false”。

详情

在实时音视频互动过程中,本地用户可根据需要,通过此函数控制拉流时是否接收所有远端用户的视频数据(包括在调用该函数后新加入房间的用户所推的视频流)。默认情况下,用户加入房间后可以接收所有远端用户推送的视频数据。当开发者不接收视频数据时,可降低硬件和网络的开销。

  • 业务场景:当开发者需要快速关闭、恢复观看远端视频画面时,可调用此函数。相比重新拉流,能极大降低耗时,提升互动体验。
  • 调用时机:在调用 [createEngine] 后可调用此函数。
  • 相关接口:可调用 [mutePlayStreamVideo] 函数控制是否接收单条视频数据。必须当 [muteAllPlayStreamVideo] 和 [mutePlayStreamVideo] 两个函数同时设置为 "false" 时,本地用户拉流时才能接收远端用户的视频数据: 1. 当调用 [muteAllPlayStreamVideo(true)] 函数时,全局生效,即本地用户会禁止接收所有远端用户的视频数据,此时无论在 [muteAllPlayStreamVideo] 之前还是之后调用 [mutePlayStreamVideo] 函数都不生效。 2. 当调用 [muteAllPlayStreamVideo(false)] 函数时,本地用户可以接收所有远端用户的视频数据,此时可再通过 [mutePlayStreamVideo] 函数控制是否接收单条视频数据。调用 [mutePlayStreamVideo(true, streamID)] 函数则本地用户可以接收该 "streamID" 之外的其他视频数据;调用 [mutePlayStreamVideo(false, streamID)] 函数则本地用户可以接收 "streamID" 的视频数据。
  • 支持版本:2.4.0 及以上。
  • 注意事项: 1. 此接口在 SDK 生命周期内不能和 [muteAllPlayVideoStreams] 混用。
  1. 当指定不接收视频流数据时,视图默认保持在最后一帧,如果需要清除最后一帧,请联系 ZEGO 技术支持。

muteAllPlayVideoStreams:

muteAllPlayVideoStreams:
- (void)muteAllPlayVideoStreams:(BOOL) mute;
拉流是否可接收所有视频数据
Declared in ZegoExpressEngine.h

参数

名称类型描述
muteBOOL拉流时是否可以接收所有远端用户的视频数据,“true” 表示禁止,“false” 表示接收,默认值为 “false”。

详情

在实时音视频互动过程中,本地用户可根据需要,通过此函数控制拉流时是否接收所有远端用户的视频数据(包括在调用该函数后新加入房间的用户所推的视频流)。默认情况下,用户加入房间后可以接收所有远端用户推送的视频数据。当开发者不接收视频数据时,可降低硬件和网络的开销。

  • 业务场景:当开发者需要快速关闭、恢复观看远端视频画面时,可调用此函数。相比重新拉流,能极大降低耗时,提升互动体验。
  • 调用时机:在调用 [createEngine] 后可调用此函数。
  • 相关接口:可调用 [mutePlayStreamVideo] 函数控制是否接收单条视频数据。
  • 支持版本:3.10.0 及以上。
  • 注意事项: 1. 此接口在 SDK 生命周期内不能和 [muteAllPlayStreamVideo] 混用。
  1. 当指定不接收视频流数据时,视图默认保持在最后一帧,如果需要清除最后一帧,请联系 ZEGO 技术支持。

enableHardwareDecoder:

enableHardwareDecoder:
- (void)enableHardwareDecoder:(BOOL) enable;
开/关硬件解码。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启硬解开关,true 表示开启硬解,false 表示关闭硬解。

详情

拉流时是否使用硬件解码,开启硬件解码后 SDK 会使用 GPU 进行解码,降低 CPU 使用率。

  • 业务场景:若开发者在某些机型测试时发现拉大分辨率音视频流时设备发热严重,可考虑调用此函数开启硬件解码的方式。
  • 默认值:未调用此接口时,默认关闭硬解。
  • 调用时机:此函数需要在 [createEngine] 创建实例后调用。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:在拉流前设置才能生效,如果在拉流后设置,停止拉流后重新拉流才生效,此配置生效后,在下次调用生效前一直有效。

enableCheckPoc:

enableCheckPoc:
- (void)enableCheckPoc:(BOOL) enable;
开/关帧顺序检测。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启帧顺序检测,true 表示开启帧顺序检测,false 表示关闭帧顺序检测。

详情

设置是否开启帧顺序检查。

  • 业务场景:拉cdn的流时,开启帧顺序检测可防止花屏。
  • 默认值:未调用此接口时,默认开启帧顺序检测。
  • 调用时机:此函数需要在 [createEngine] 创建实例后调用。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:拉流过程中关闭顺序检测可能出现短暂花屏。

isVideoDecoderSupported:

isVideoDecoderSupported:
- (BOOL)isVideoDecoderSupported:(ZegoVideoCodecID) codecID;
是否支持指定视频解码格式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
codecIDZegoVideoCodecID视频解码类型。是否必填:是。

详情

是否支持指定视频解码,主要取决于以下几个方面:硬件型号是否支持硬解、硬件型号性能是否支持软解、SDK 是否带该解码模块。

  • 调用时机:创建引擎后。
  • 支持版本:2.12.0 及以上。
  • 注意事项:建议用户在拉 H.265 流前,先调用本接口获取 H.265 解码支持能力,如果不支持,可以拉其他编码格式的流,比如 H.264。

返回值

是否支持指定视频解码格式;true 表示支持,可以使用该解码格式进行拉流;false 表示不支持,SDK 不建议用户拉取该编码格式的流,如果用户强制拉取,可能会出现低帧率的表现。

isVideoDecoderSupported:codecBackend:

isVideoDecoderSupported:codecBackend:
- (int)isVideoDecoderSupported:(ZegoVideoCodecID) codecID codecBackend:(ZegoVideoCodecBackend) codecBackend;
是否支持指定视频解码格式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
codecIDZegoVideoCodecID视频解码类型。是否必填:是。
codecBackendZegoVideoCodecBackend解码器的后端实现。是否必填:是。

详情

是否支持指定视频解码,主要取决于以下几个方面:硬件型号是否支持硬解、硬件型号性能是否支持软解、SDK 是否带该解码模块。

  • 调用时机:创建引擎后。
  • 支持版本:3.0.0 及以上。
  • 注意事项:建议用户在拉 H.265 流前,先调用本接口获取 H.265 解码支持能力,如果不支持,可以拉其他编码格式的流,比如 H.264。

返回值

是否支持指定视频解码格式;0 表示不支持,不可以使用该解码格式进行拉流;1 表示支持,可以使用该解码格式进行拉流;2 表示未确认,建议稍后再调用本接口。

getVideoDecoderSupported:codecBackend:callback:

getVideoDecoderSupported:codecBackend:callback:
- (void)getVideoDecoderSupported:(ZegoVideoCodecID) codecID codecBackend:(ZegoVideoCodecBackend) codecBackend callback:(nullable ZegoPlayerGetVideoDecoderSupportedCallback) callback;
是否支持指定的视频解码类型和实现方式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
codecIDZegoVideoCodecID视频解码类型。是否必填:是。
codecBackendZegoVideoCodecBackend解码器的后端实现。是否必填:是。
callbacknullable ZegoPlayerGetVideoDecoderSupportedCallback是否支持指定视频解码结果的回调。

详情

是否支持指定视频解码,主要取决于以下几个方面:硬件型号是否支持硬解、硬件型号性能是否支持软解、SDK 是否带该解码模块。

  • 调用时机:创建引擎后。
  • 支持版本:3.23.0 及以上。
  • 注意事项:建议用户在拉 H.265 流前,先调用本接口获取 H.265 解码支持能力,如果不支持,可以拉其他编码格式的流,比如 H.264。

setPlayStreamsAlignmentProperty:

setPlayStreamsAlignmentProperty:
- (void)setPlayStreamsAlignmentProperty:(ZegoStreamAlignmentMode) mode;
设置拉流对齐属性。
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoStreamAlignmentMode设置流对齐模式。

详情

拉流端播放时,控制播放的 RTC 流是否需要精准对齐。若需要,则拉取的所有流中包含精准对齐参数的会进行对齐,若不需要,则所有流都不对齐。

  • 业务场景:常用于 KTV 等需要拉多路流对齐的场景,以保证用户在使用过程中,随时切换 唱歌主播、普通麦上语聊主播、麦下观众多种身份。
  • 默认值:若未调该接口,默认为 不对齐。
  • 调用时机:需要在 [createEngine] 之后调用。重复调用接口,最新设置有效。
  • 相关接口:设置流通道的精准对齐参数 [setStreamAlignmentProperty]。
  • 支持版本:2.14.0 及以上。

enableVideoSuperResolution:enable:

enableVideoSuperResolution:enable:
- (void)enableVideoSuperResolution:(NSString *) streamID enable:(BOOL) enable;
开启视频画面超分。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *当前需要开启或关闭超分的流的 ID。
enableBOOL是否开启超分,默认不开启。

详情

拉流时是否开启视频超分,通过视频超分可以在拉流端对拉到的视频画面的分辨率进行倍增。如原始分辨率为 640x360,超分后为 1280x720。

  • 业务场景:直播场景。
  • 调用时机:视频超分仅对拉流视频画面有效。需要在 [initVideoSuperResolution] 之后调用。
  • 相关回调:开发者可以通过 [onPlayerVideoSuperResolutionUpdate] 回调监听视频超分状态变化。
  • 支持版本:3.0.0 及以上。
  • 注意事项: 1. 该功能需要特殊编包,请联系 ZEGO 技术支持;
  1. 该功能会额外耗费系统资源,为了保证用户体验,ZEGO 限制只能对一条流开启超分辨率,且该条流的原始分辨率不建议超过 640×360。

initVideoSuperResolution

initVideoSuperResolution
- (void)initVideoSuperResolution;
初始化视频画面超分。
Declared in ZegoExpressEngine.h

初始化超分后,才能正常使用超分功能。

  • 业务场景:直播场景。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 支持版本:3.3.0 及以上。
  • 注意事项: 1. 初始化视频画面超分为耗时操作,不建议频繁初始化、反初始化;
  1. 该功能需要特殊编包,请联系 ZEGO 技术支持。

uninitVideoSuperResolution

uninitVideoSuperResolution
- (void)uninitVideoSuperResolution;
反初始化视频画面超分。
Declared in ZegoExpressEngine.h

反初始化超分后,SDK 将释放超分占用的资源,并导致超分功能不可用。

  • 业务场景:直播场景。
  • 调用时机:需要在 [initVideoSuperResolution] 之后调用。
  • 支持版本:3.3.0 及以上。
  • 注意事项:初始化视频画面超分为耗时操作,不建议频繁初始化、反初始化。

updatePlayingCanvas:canvas:

updatePlayingCanvas:canvas:
- (int)updatePlayingCanvas:(NSString *) streamID canvas:(ZegoCanvas *) canvas;
更新拉流视图。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID,长度不超过 256 字节的字符串。
注意事项:
仅支持数字,英文字符 和 '-', '_'。
canvasZegoCanvas *用于显示拉流画面的视图,视图设置为 [nil] 时不显示视频,只播放音频。该参数可以设置视图显示模式(viewMode)和背景色。

详情

该接口会更新拉流视图。

  • 业务场景:用户可调用该接口更新拉流视图显示视频。
  • 调用时机:调用 [startPlayingStream] 接口后。
  • 支持版本:3.4.0 及以上。
  • 使用限制:无。
  • 注意事项:无。

返回值

错误码,详情请参考常用错误码文档 https://doc-zh.zego.im/zh/4378.html

setPlayingCanvas:updateType:canvas:

setPlayingCanvas:updateType:canvas:
- (int)setPlayingCanvas:(NSString *) streamID updateType:(ZegoViewUpdateType) updateType canvas:(ZegoCanvas *) canvas;
设置拉流视图。
Declared in ZegoExpressEngine.h

参数

名称类型描述
streamIDNSString *流 ID,长度不超过 256 字节的字符串。
注意事项:
仅支持数字,英文字符 和 '-', '_'。
updateTypeZegoViewUpdateType更新类型。
canvasZegoCanvas *用于显示拉流画面的视图。

详情

该接口可以添加、删除、更新拉流视图。

  • 业务场景:用户可调用该接口添加、删除、更新拉流视图显示视频。
  • 调用时机:调用 [startPlayingStream] 接口后。
  • 支持版本:3.21.0 及以上。
  • 使用限制:无。
  • 注意事项:无。

返回值

错误码,详情请参考常用错误码文档 https://doc-zh.zego.im/zh/4378.html

startMixerTask:callback:

startMixerTask:callback:
- (void)startMixerTask:(ZegoMixerTask *) task callback:(nullable ZegoMixerStartCallback) callback;
开始混流任务。
Declared in ZegoExpressEngine.h

参数

名称类型描述
taskZegoMixerTask *混流任务对象。是否必填:是。
callbacknullable ZegoMixerStartCallback开始混流任务结果通知。是否必填:否。注意事项:传 [nil] 则意味着不接收回调通知。

详情

向 ZEGO RTC 服务器发起混流请求,服务器会寻找当前正在推的流,并根据 SDK 请求的混流任务的参数进行图层混合。当需要更新混流任务时,即输入流增加或减少时需要更新输入流列表,此时可以更新 [ZegoMixerTask] 对象 inputList 的字段并再次调用本函数传入相同的 [ZegoMixerTask] 对象更新混流任务。

  • 业务场景:常用于需要多个视频画面合成一个视频时使用混流,比如教育类,直播老师和学生的画面。
  • 调用时机:调用 [loginRoom] 登录房间后。
  • 相关回调:可通过 [onMixerRelayCDNStateUpdate] 获取混流转推 CDN 状态更新通知,可通过 [onMixerSoundLevelUpdate] 获取混流中的每条单流的声浪更新通知。
  • 相关接口:可通过 [stopMixerTask] 函数停止混流。
  • 支持版本:1.2.1 及以上。
  • 使用限制:无。
  • 注意事项:由于客户端设备的性能考虑,SDK 的混流是在 ZEGO RTC 服务器开启混流任务进行混流。若请求开启混流任务发生异常,例如最常见的混流的输入流不存在,将会从 callback 回调的错误码给出。具体错误码请参考 常见错误码文档 https://doc-zh.zego.im/zh/4378.html 若中途某条输入流不存在了,混流任务会自动重试拉这条输入流 90 秒,90 秒之后不再重试。若所有输入流均不存在了,90秒之后服务器会自动停止混流任务。

stopMixerTask:callback:

stopMixerTask:callback:
- (void)stopMixerTask:(ZegoMixerTask *) task callback:(nullable ZegoMixerStopCallback) callback;
停止混流任务。
Declared in ZegoExpressEngine.h

参数

名称类型描述
taskZegoMixerTask *混流任务对象。是否必填:是。
callbacknullable ZegoMixerStopCallback停止混流任务结果通知。是否必填:否。注意事项:传 [nil] 则意味着不接收回调通知。

详情

向 ZEGO RTC 服务器发起结束混流请求。

  • 业务场景:常用于需要多个视频画面合成一个视频时使用混流,比如教育类,直播老师和学生的画面。
  • 调用时机:调用 [startMixerTask] 开始混流后。
  • 相关接口:可通过 [startMixerTask] 函数开始混流。
  • 支持版本:1.2.1 及以上。
  • 使用限制:无。
  • 注意事项:若开发者在未停止上一个混流任务的情况下启动下一个混流任务,上一个混流任务不会自动停止,直到上一个混流任务的输入流持续 90 秒都不存在之后。在启动下一个混流任务前,应当先停止上一个混流任务,以免当一个主播已经开启下一个混流任务与其他主播混流时,观众依然在拉上一个混流任务的输出流。

startAutoMixerTask:callback:

startAutoMixerTask:callback:
- (void)startAutoMixerTask:(ZegoAutoMixerTask *) task callback:(nullable ZegoMixerStartCallback) callback;
开始自动混流任务
Declared in ZegoExpressEngine.h

参数

名称类型描述
taskZegoAutoMixerTask *自动混流任务对象
callbacknullable ZegoMixerStartCallback开始自动混流任务结果通知

详情

本地用户可调用该函数开始自动混流任务,对房间内的所有流进行混流,目前仅支持音频流自动混流。启动自动混流后,会自动混流该房间内所有流的音频,此房间内再发起的推流也会自动混入最后的输出流中。

  • 业务场景:常用于语聊房场景下,需要由客户端发起自动混流任务时。
  • 调用时机:在创建引擎后,如果目标房间已经创建,可调用该函数在目标房间开启自动混流。
  • 相关回调:通过 [ZegoMixerStartCallback] 回调,用户可以获取函数执行结果。通过 [onAutoMixerSoundLevelUpdate] 回调,用户可以获取自动混流后声浪信息。
  • 相关接口:可调用 [stopAutoMixerTask] 函数,停止自动混流任务。
  • 支持版本:2.10.0 及以上。
  • 注意事项:在同一个房间内开启下一个自动混流任务前,请先调用 [stopAutoMixerTask] 函数结束上一次自动混流任务,以免造成当一个主播已经开启下一个自动混流任务与其他主播混流时,观众依然在一直拉上一个自动混流任务的输出流的情况。若用户未主动结束当前自动混流任务,该任务将在房间不存在之后或者输入流持续 90 秒不存在之后自动结束。

stopAutoMixerTask:callback:

stopAutoMixerTask:callback:
- (void)stopAutoMixerTask:(ZegoAutoMixerTask *) task callback:(nullable ZegoMixerStopCallback) callback;
停止自动混流任务
Declared in ZegoExpressEngine.h

参数

名称类型描述
taskZegoAutoMixerTask *自动混流任务对象
callbacknullable ZegoMixerStopCallback停止自动混流任务结果通知

详情

本地用户可调用该函数结束自动混流任务。

  • 业务场景:常用于语聊房场景下,需要由客户端发起自动混流任务时。
  • 调用时机:在调用 [startAutoMixerTask] 函数开启自动混流任务后可调用该函数。
  • 相关回调:通过 [ZegoMixerStopCallback] 回调,用户可以获取函数执行结果。
  • 相关接口:可调用 [startAutoMixerTask] 函数,开始自动混流任务。
  • 支持版本:2.10.0 及以上。
  • 注意事项:在同一个房间内调用 [startAutoMixerTask] 函数开启下一个自动混流任务前,请先调用此函数结束上一次自动混流任务,以免造成当一个主播已经开启下一个自动混流任务与其他主播混流时,观众依然在一直拉上一个自动混流任务的输出流的情况。若用户未主动结束当前自动混流任务,该任务将在房间不存在之后或者输入流持续 90 秒不存在之后自动结束。

muteMicrophone:

muteMicrophone:
- (void)muteMicrophone:(BOOL) mute;
设置是否静音(关闭麦克风)。
Declared in ZegoExpressEngine.h

参数

名称类型描述
muteBOOL是否静音(关闭麦克风);"true" 表示静音(关闭麦克风);"false" 表示开启麦克风。

详情

此函数用于控制是否使用采集到的音频数据,静音(关闭麦克风)将会使用静音数据替换设备采集到的音频数据进行推流,此时仍然会占用麦克风设备。

  • 业务场景:用户仅关闭麦克风采集的人声,不关闭媒体播放器的音乐声音,可以调用该接口。该接口影响 [onBeforeAudioPrepAudioData]。
  • 默认值:默认为 "false",即不静音。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 相关接口:若想要真正让 SDK 放弃占用麦克风,例如实现 App 退到后台后释放麦克风占用等功能,可调用 [enableAudioCaptureDevice] 函数开关音频采集设备。可使用 [isMicrophoneMuted] 来检查麦克风是否静音。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。

isMicrophoneMuted

isMicrophoneMuted
- (BOOL)isMicrophoneMuted;
检查麦克风是否设置为静音。
Declared in ZegoExpressEngine.h

用于判断麦克风是否被设置为静音。

  • 调用时机:在创建引擎 [createEngine] 后。
  • 相关接口:[muteMicrophone]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。

麦克风是否静音;"true" 表示麦克风静音;"false" 表示麦克风开启中(没有被静音)。

muteSpeaker:

muteSpeaker:
- (void)muteSpeaker:(BOOL) mute;
设置是否静音(关闭音频输出)。
Declared in ZegoExpressEngine.h

参数

名称类型描述
muteBOOL是否静音(关闭音频输出);"true" 表示静音(关闭音频输出);"false" 表示开启音频输出。

详情

设置静音后,SDK 所有声音都不会播放,包括拉流、媒体播放器等。

  • 默认值:默认为 "false",即不静音。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。

isSpeakerMuted

isSpeakerMuted
- (BOOL)isSpeakerMuted;
检查音频输出是否静音。
Declared in ZegoExpressEngine.h

用于判断音频输出是否静音。

  • 调用时机:在创建引擎 [createEngine] 后。
  • 相关接口:[muteSpeaker]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。

音频输出是否静音;"true" 表示音频输出静音;"false" 表示音频输出开启中(没有被静音)。

getAudioDeviceList:

getAudioDeviceList:
- (NSArray<ZegoDeviceInfo *> *)getAudioDeviceList:(ZegoAudioDeviceType) deviceType;
获取音频设备列表
Declared in ZegoExpressEngine.h

参数

名称类型描述
deviceTypeZegoAudioDeviceType音频设备类型

详情

只适用于 Windows / macOS / Linux

返回值

音频设备列表

getDefaultAudioDeviceID:

getDefaultAudioDeviceID:
- (NSString *)getDefaultAudioDeviceID:(ZegoAudioDeviceType) deviceType;
获取默认音频设备 ID
Declared in ZegoExpressEngine.h

参数

名称类型描述
deviceTypeZegoAudioDeviceType音频设备类型

详情

只适用于 Windows / macOS / Linux

返回值

默认音频设备 ID

useAudioDevice:deviceType:

useAudioDevice:deviceType:
- (void)useAudioDevice:(NSString *) deviceID deviceType:(ZegoAudioDeviceType) deviceType;
选择使用某个音频设备
Declared in ZegoExpressEngine.h

参数

名称类型描述
deviceIDNSString *通过 [getAudioDeviceList] 获取的某个设备的 ID
deviceTypeZegoAudioDeviceType音频设备类型

详情

选择使用某个音频设备。

  • 调用时机:在创建引擎 [createEngine] 之后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:仅支持 Windows / macOS / Linux

getAudioDeviceVolume:deviceType:

getAudioDeviceVolume:deviceType:
- (int)getAudioDeviceVolume:(NSString *) deviceID deviceType:(ZegoAudioDeviceType) deviceType;
获取音频设备音量
Declared in ZegoExpressEngine.h

参数

名称类型描述
deviceIDNSString *通过 [getAudioDeviceList] 获取的某个设备的 ID
deviceTypeZegoAudioDeviceType音频设备类型

详情

获取音频设备音量,只适用于 Windows / macOS / Linux

返回值

设备音量

setAudioDeviceVolume:deviceType:volume:

setAudioDeviceVolume:deviceType:volume:
- (void)setAudioDeviceVolume:(NSString *) deviceID deviceType:(ZegoAudioDeviceType) deviceType volume:(int) volume;
设置音频设备音量。
Declared in ZegoExpressEngine.h

参数

名称类型描述
deviceIDNSString *通过 [getAudioDeviceList] 获取的某个设备的 ID
deviceTypeZegoAudioDeviceType音频设备类型
volumeint设备音量

详情

可能因为系统限制导致直接操作系统设备失败,请优先使用 [setCaptureVolume] 和 [setPlayVolume] 来调节推拉流音量。 只适用于 Windows / macOS / Linux

startAudioDeviceVolumeMonitor:deviceType:

startAudioDeviceVolumeMonitor:deviceType:
- (void)startAudioDeviceVolumeMonitor:(NSString *) deviceID deviceType:(ZegoAudioDeviceType) deviceType;
开启音频设备音量监控。
Declared in ZegoExpressEngine.h

参数

名称类型描述
deviceIDNSString *通过 [getAudioDeviceList] 获取的某个设备的 ID
deviceTypeZegoAudioDeviceType音频设备类型

详情

启动音频设备音量监控器。当该设备音量发生变更时,会通过 [onAudioDeviceVolumeChanged] 回调变更后的音量。

  • 调用时机:在创建引擎 [createEngine] 之后。
  • 平台差异:仅支持 Windows 和 macOS。
  • 相关接口:当不再需要监控设备音量时,请调用 [stopAudioDeviceVolumeMonitor] 停止监控。
  • 支持版本:1.1.0 及以上。
  • 注意事项:目前仅支持同时监控一个音频输出设备和一个音频输入设备,多次调用此接口且传入相同的设备类型时将会覆盖上一次调用时此接口设置的设备 ID。

stopAudioDeviceVolumeMonitor:deviceType:

stopAudioDeviceVolumeMonitor:deviceType:
- (void)stopAudioDeviceVolumeMonitor:(NSString *) deviceID deviceType:(ZegoAudioDeviceType) deviceType;
停止音频设备音量监控。
Declared in ZegoExpressEngine.h

参数

名称类型描述
deviceIDNSString *通过 [getAudioDeviceList] 获取的某个设备的 ID
deviceTypeZegoAudioDeviceType音频设备类型

详情

停止音频设备音量监控器。

  • 调用时机:在创建引擎 [createEngine] 之后,当不再需要监控设备音量时。
  • 平台差异:仅支持 Windows 和 macOS。
  • 支持版本:1.1.0 及以上。

muteAudioDevice:deviceType:mute:

muteAudioDevice:deviceType:mute:
- (void)muteAudioDevice:(NSString *) deviceID deviceType:(ZegoAudioDeviceType) deviceType mute:(BOOL) mute;
静音或取消静音音频设备。
Declared in ZegoExpressEngine.h

参数

名称类型描述
deviceIDNSString *通过 [getAudioDeviceList] 获取的某个设备的 ID
deviceTypeZegoAudioDeviceType音频设备类型
muteBOOL是否静音音频设备;"true" 表示静音音频设备;"false" 表示取消静音音频设备。

详情

只适用于 Windows / macOS / Linux

setAudioDeviceMode:

setAudioDeviceMode:
- (void)setAudioDeviceMode:(ZegoAudioDeviceMode) deviceMode;
设置音频设备模式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
deviceModeZegoAudioDeviceMode音频设备模式

详情

根据场景需要选择音频设备模式(仅 Android 和 iOS 支持)。 使用场景:如实时 KTV 场景下,必须使用 General 模式,但是在语聊房场景下,为了避免第三方音乐的声音被采集,所以会要求使用 Communication2 或者 Communication3 模式。如何设置音频设备模式,请参考 https://doc-zh.zego.im/faq/AudioDeviceMod?product=ExpressVideo&platform=macos

  • 调用时机:在创建引擎 [createEngine] 之后。
  • 支持版本:2.22.0 及以上。
  • 注意事项:该接口会触发设备的启动切换,建议不要频繁调用,避免不必要的开销与硬件问题。该接口可能导致音量模式在通话/媒体间切换,若媒体音量和通话音量不一致,可能导致音量变化。

isAudioDeviceMuted:deviceType:

isAudioDeviceMuted:deviceType:
- (BOOL)isAudioDeviceMuted:(NSString *) deviceID deviceType:(ZegoAudioDeviceType) deviceType;
检查音频设备是否静音
Declared in ZegoExpressEngine.h

参数

名称类型描述
deviceIDNSString *通过 [getAudioDeviceList] 获取的某个设备的 ID
deviceTypeZegoAudioDeviceType音频设备类型

详情

只适用于 Windows / macOS / Linux

返回值

音频设备是否静音;"true" 表示音频设备静音;"false" 表示音频设备没有被静音。

enableAudioCaptureDevice:

enableAudioCaptureDevice:
- (void)enableAudioCaptureDevice:(BOOL) enable;
开/关音频采集设备。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启音频采集设备;"true" 表示打开音频采集设备;"false" 表示关闭音频采集设备。

详情

此函数用于控制是否使用音频采集设备。如果关闭音频采集设备,则 SDK 不会再占用音频设备,当然如果此时正在推流,默认情况下会使用静音数据做为音频数据进行推流。注意 Linux 平台不支持该功能 使用场景:当用户从不需要用到音频的时候,可以调用此函数关闭音频采集。

  • 默认值:默认为 "true"。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 相关接口:硬件上关闭或打开麦克风是耗时操作,用户频繁操作时有一定的性能开销,一般推荐使用 [muteMicrophone]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。

enableAudioCaptureDeviceAsync:callback:

enableAudioCaptureDeviceAsync:callback:
- (void)enableAudioCaptureDeviceAsync:(BOOL) enable callback:(ZegoAudioCaptureDeviceEnableCallback) callback;
异步开/关音频采集设备。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启音频采集设备;"true" 表示打开音频采集设备;"false" 表示关闭音频采集设备。
callbackZegoAudioCaptureDeviceEnableCallback开/关完成回调。

详情

此函数用于控制是否使用音频采集设备。如果关闭音频采集设备,则 SDK 不会再占用音频设备,当然如果此时正在推流,默认情况下会使用静音数据做为音频数据进行推流。注意 Linux 平台不支持该功能 使用场景:当用户从不需要用到音频的时候,可以调用此函数关闭音频采集。

  • 默认值:默认为 "true"。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 相关接口:硬件上关闭或打开麦克风是耗时操作,用户频繁操作时有一定的性能开销,一般推荐使用 [muteMicrophone]。
  • 支持版本:3.23.0 及以上。
  • 使用限制:无。

getAudioRouteType

getAudioRouteType
- (ZegoAudioRoute) getAudioRouteType;
获取当前音频路由。
Declared in ZegoExpressEngine.h

音频路由是指 App 在播放音频时使用的音频输出设备,常见的音频路由有:扬声器、听筒、耳机、蓝牙设备等。

  • 调用时机:在创建引擎 [createEngine] 后。
  • 相关接口:设置音频路由到扬声器 [setAudioRouteToSpeaker]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:win 或 mac 平台下不支持。

setAudioRouteToSpeaker:

setAudioRouteToSpeaker:
- (void)setAudioRouteToSpeaker:(BOOL) defaultToSpeaker;
设置音频路由到扬声器。
Declared in ZegoExpressEngine.h

参数

名称类型描述
defaultToSpeakerBOOL是否使用内置扬声器播放声音,"true" 表示使用内置扬声器播放声音,"false" 表示使用当前系统调度的优先级最高的音频输出设备播放声音。

详情

是否使用扬声器播放音频,当选择不使用内置扬声器播放声音时,SDK 会根据系统调度选择当前优先级最高的音频输出设备播放声音,常见的音频路由有:听筒、耳机、蓝牙设备等。

  • 调用时机:在创建引擎 [createEngine] 后。
  • 相关接口:获取当前音频路由 [getAudioRouteType]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:只支持听筒和扬声器的切换,如果是蓝牙耳机或者有线耳机不支持通过该接口路由到扬声器。

enableCamera:

enableCamera:
- (void)enableCamera:(BOOL) enable;
开/关摄像头。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否打开摄像头;"true" 表示打开摄像头;"false" 表示关闭摄像头。

详情

此函数用于控制是否启动摄像头的采集,关闭摄像头后,将不会进行视频采集,此时本地预览和推流都将没有视频数据。

  • 默认值:默认为 "true",即打开摄像头。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:在使用自定义视频采集功能 [enableCustomVideoCapture] 的情况下,由于开发者接管了视频数据的采集,SDK 不再负责视频数据的采集,但此函数依然会影响是否进行编码的行为。因此开发者使用自定义视频采集时,请确保此函数的值为 "true"。

enableCamera:channel:

enableCamera:channel:
- (void)enableCamera:(BOOL) enable channel:(ZegoPublishChannel) channel;
开/关摄像头,支持设置其他通道的推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否打开摄像头;"true" 表示打开摄像头;"false" 表示关闭摄像头。
channelZegoPublishChannel推流通道

详情

此函数用于控制是否启动摄像头的采集,关闭摄像头后,将不会进行视频采集,此时本地预览和推流都将没有视频数据。

  • 默认值:默认为 "true",即打开摄像头。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:在使用自定义视频采集功能 [enableCustomVideoCapture] 的情况下,由于开发者接管了视频数据的采集,SDK 不再负责视频数据的采集,但此函数依然会影响是否进行编码的行为。因此开发者使用自定义视频采集时,请确保此函数的值为 "true"。

enableCamera:notifyMode:channel:

enableCamera:notifyMode:channel:
- (void)enableCamera:(BOOL) enable notifyMode:(ZegoExpNotifyDeviceStateMode) notifyMode channel:(ZegoPublishChannel) channel;
开/关摄像头,支持设置其他通道的推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否打开摄像头;"true" 表示打开摄像头;"false" 表示关闭摄像头。
notifyModeZegoExpNotifyDeviceStateMode通知本端设备状态的模式。
channelZegoPublishChannel推流通道

详情

此函数用于控制是否启动摄像头的采集,关闭摄像头后,将不会进行视频采集,此时本地预览和推流都将没有视频数据。

  • 默认值:默认为 "true",即打开摄像头。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 支持版本:3.20.0 及以上。
  • 使用限制:无。
  • 注意事项:在使用自定义视频采集功能 [enableCustomVideoCapture] 的情况下,由于开发者接管了视频数据的采集,SDK 不再负责视频数据的采集,但此函数依然会影响是否进行编码的行为。因此开发者使用自定义视频采集时,请确保此函数的值为 "true"。

useFrontCamera:

useFrontCamera:
- (void)useFrontCamera:(BOOL) enable;
切换前后摄像头。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL[ZegoVideoSourceTypeCamera] 是否采用前置摄像头;true: 表示使用前置摄像头;false: 表示使用后置摄像头。

详情

此函数用于控制 [ZegoVideoSourceTypeCamera] 使用前置摄像头或者后置摄像头(仅 Android 和 iOS 支持)。

  • 默认值:默认为 "true",即使用前置摄像头。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:在开启自定义视频采集功能 [enableCustomVideoCapture] 的情况下,由于开发者接管了视频数据的采集,SDK 不再负责视频数据的采集,本函数不再有效。

useFrontCamera:channel:

useFrontCamera:channel:
- (void)useFrontCamera:(BOOL) enable channel:(ZegoPublishChannel) channel;
切换前后摄像头,支持指定推流通道。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL[ZegoVideoSourceTypeCamera] 是否采用前置摄像头;true: 表示使用前置摄像头;false: 表示使用后置摄像头。
channelZegoPublishChannel推流通道。

详情

此函数用于控制 [ZegoVideoSourceTypeCamera] 使用前置摄像头或者后置摄像头(仅 Android 和 iOS 支持)。

  • 默认值:默认为 "true",即使用前置摄像头。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:在开启自定义视频采集功能 [enableCustomVideoCapture] 的情况下,由于开发者接管了视频数据的采集,SDK 不再负责视频数据的采集,本函数不再有效。

isCameraFocusSupported:

isCameraFocusSupported:
- (BOOL)isCameraFocusSupported:(ZegoPublishChannel) channel;
摄像头是否支持对焦
Declared in ZegoExpressEngine.h

参数

名称类型描述
channelZegoPublishChannel推流通道

详情

摄像头是否支持对焦。

  • 调用时机:在开启预览后 [startPreview] 后调用。
  • 支持版本:2.14.0 及以上
  • 注意事项:需要摄像头启动成功

返回值

是否支持对焦,支持为 true,不支持为 false

setCameraFocusMode:channel:

setCameraFocusMode:channel:
- (void)setCameraFocusMode:(ZegoCameraFocusMode) mode channel:(ZegoPublishChannel) channel;
设置摄像头对焦模式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoCameraFocusMode对焦模式。
channelZegoPublishChannel推流通道

详情

设置摄像头对焦模式。

  • 调用时机:在开启预览后 [startPreview] 后调用。
  • 支持版本:2.14.0 及以上
  • 使用限制:目前只支持 iOS 和 Android 平台。

setCameraFocusPointInPreviewX:y:channel:

setCameraFocusPointInPreviewX:y:channel:
- (void)setCameraFocusPointInPreviewX:(float) x y:(float) y channel:(ZegoPublishChannel) channel;
设置预览视图中的对焦点。
Declared in ZegoExpressEngine.h

参数

名称类型描述
xfloat归一化的 X 轴坐标值, 有效值 [0,1]。
yfloat归一化的 Y 轴坐标值, 有效值 [0,1]。
channelZegoPublishChannel推流通道

详情

设置预览视图中的对焦点。(x,y)是在预览视图中归一化的坐标,即对焦点相对预览视图的位置与预览视图宽高的比值,左上角是(0, 0)。

  • 调用时机:在开启预览后 [startPreview] 后调用。
  • 支持版本:2.14.0 及以上
  • 使用限制:目前只支持 iOS 和 Android 平台。
  • 注意事项:每次摄像头重新启动采集,设置都会失效,需要重新设置。

setCameraExposureMode:channel:

setCameraExposureMode:channel:
- (void)setCameraExposureMode:(ZegoCameraExposureMode) mode channel:(ZegoPublishChannel) channel;
设置摄像头曝光模式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoCameraExposureMode曝光模式。
channelZegoPublishChannel推流通道

详情

设置摄像头曝光模式。

  • 调用时机:在开启预览后 [startPreview] 后调用。
  • 支持版本:2.14.0 及以上
  • 使用限制:目前只支持 iOS 和 Android 平台。

setCameraExposurePointInPreviewX:y:channel:

setCameraExposurePointInPreviewX:y:channel:
- (void)setCameraExposurePointInPreviewX:(float) x y:(float) y channel:(ZegoPublishChannel) channel;
设置预览视图中的曝光点。
Declared in ZegoExpressEngine.h

参数

名称类型描述
xfloat归一化的 X 轴坐标值, 有效值 [0,1]。
yfloat归一化的 Y 轴坐标值, 有效值 [0,1]。
channelZegoPublishChannel推流通道

详情

设置预览视图中的曝光点。(x,y)是在预览视图中归一化的坐标,即曝光点相对预览视图的位置与预览视图宽高的比值,左上角是(0, 0)。

  • 调用时机:在开启预览后 [startPreview] 后调用。
  • 支持版本:2.14.0 及以上
  • 使用限制:目前只支持 iOS 和 Android 平台。
  • 注意事项:每次摄像头重新启动采集,设置都会失效,需要重新设置。

setCameraExposureCompensation:

setCameraExposureCompensation:
- (void)setCameraExposureCompensation:(float) value;
设置摄像头曝光补偿数值。
Declared in ZegoExpressEngine.h

参数

名称类型描述
valuefloat摄像头曝光度,取值范围为 [-1,1], 默认值为 0。取值越小画面越暗,取值越大画面越亮。

详情

设置摄像头曝光补偿数值。

  • 业务场景:当用户需要设置摄像头曝光补偿值时,可以调用此接口。
  • 调用时机:调用 [startPublishingStream] 或 [startPreview] 后调用此函数。
  • 平台差异:仅支持 iOS 和 Android。
  • 支持版本:2.10.0 及以上。
  • 使用限制:无。
  • 注意事项:摄像头重启后,设置会失效。

setCameraExposureCompensation:channel:

setCameraExposureCompensation:channel:
- (void)setCameraExposureCompensation:(float) value channel:(ZegoPublishChannel) channel;
设置摄像头曝光补偿数值,支持指定推流通道号。
Declared in ZegoExpressEngine.h

参数

名称类型描述
valuefloat摄像头曝光度,取值范围为 [-1,1], 默认值为 0。取值越小画面越暗,取值越大画面越亮。
channelZegoPublishChannel推流通道

详情

设置摄像头曝光补偿数值。

  • 业务场景:当用户需要设置摄像头曝光补偿值时,可以调用此接口。
  • 调用时机:调用 [startPublishingStream] 或 [startPreview] 后调用此函数。
  • 平台差异:仅支持 iOS 和 Android。
  • 支持版本:2.10.0 及以上。
  • 使用限制:无。
  • 注意事项:摄像头重启后,设置会失效。

setCameraZoomFactor:

setCameraZoomFactor:
- (void)setCameraZoomFactor:(float) factor;
设置摄像头变焦倍数。每次摄像头重新启动时,摄像头变焦倍数都将会恢复初始值 (1.0)。
Declared in ZegoExpressEngine.h

参数

名称类型描述
factorfloat摄像头变焦倍数,最小值为 1.0,最大值为 [getCameraMaxZoomFactor] 的返回值。

详情

设置摄像头变焦倍数。

  • 调用时机:在开启预览 [startPreview] 后调用。
  • 支持版本:1.20.0 及以上。
  • 使用限制:摄像头启动后设置才生效。

setCameraZoomFactor:channel:

setCameraZoomFactor:channel:
- (void)setCameraZoomFactor:(float) factor channel:(ZegoPublishChannel) channel;
设置摄像头变焦倍数,支持指定推流通道号。每次摄像头重新启动时,摄像头变焦倍数都将会恢复初始值 (1.0)。
Declared in ZegoExpressEngine.h

参数

名称类型描述
factorfloat摄像头变焦倍数,最小值为 1.0,最大值为 [getCameraMaxZoomFactor] 的返回值。
channelZegoPublishChannel推流通道

详情

设置摄像头变焦倍数。

  • 调用时机:在开启预览 [startPreview] 后调用。
  • 支持版本:1.20.0 及以上。
  • 使用限制:摄像头启动后设置才生效。

getCameraMaxZoomFactor

getCameraMaxZoomFactor
- (float)getCameraMaxZoomFactor;
获取摄像头最大变焦倍数
Declared in ZegoExpressEngine.h

获取摄像头最大变焦倍数。

  • 调用时机:摄像头启动成功后调用才有效,一般可以在收到采集首帧回调 [onPublisherCapturedVideoFirstFrame] 的时候调用。
  • 支持版本:1.20.0 及以上。
  • 使用限制:无。

摄像头最大变焦倍数

getCameraMaxZoomFactor:

getCameraMaxZoomFactor:
- (float)getCameraMaxZoomFactor:(ZegoPublishChannel) channel;
获取摄像头最大变焦倍数,支持指定推流通道号。
Declared in ZegoExpressEngine.h

参数

名称类型描述
channelZegoPublishChannel推流通道

详情

获取摄像头最大变焦倍数。

  • 调用时机:摄像头启动成功后调用才有效,一般可以在收到采集首帧回调 [onPublisherCapturedVideoFirstFrame] 的时候调用。
  • 支持版本:1.20.0 及以上。
  • 使用限制:无。

返回值

摄像头最大变焦倍数

enableCameraAdaptiveFPS:minFPS:maxFPS:channel:

enableCameraAdaptiveFPS:minFPS:maxFPS:channel:
- (void)enableCameraAdaptiveFPS:(BOOL) enable minFPS:(int) minFPS maxFPS:(int) maxFPS channel:(ZegoPublishChannel) channel;
开启摄像头自适应帧率
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启摄像头自适应帧率。true 表示开启,false 表示关闭。默认关闭。
minFPSint期望的最小帧率,最小值为 3,推荐 15。单位:fps。
maxFPSint期望的最大帧率,推荐 25。单位:fps。
channelZegoPublishChannel推流通道。

详情

开启后,SDK 根据设置的帧率范围匹配摄像头支持的采集帧率范围,在此范围内根据环境亮度动态调整摄像头采集帧率,提升设置的帧率过高时的画面亮度。

  • 业务场景:推流端用户设置的帧率偏高,所处环境光照较低,无法正常显示或识别主体。比如对曝光要求较高的直播场景。
  • 调用时机:创建引擎 [createEngine] 后,摄像头启动前。
  • 相关接口:通过 [setVideoConfig] 可以设置摄像头采集帧率以及编码器编码帧率。
  • 支持版本:2.20.0 及以上。
  • 注意事项:当调用 [setVideoConfig] 设置帧率小于期望帧率最小值时,将使用 [setVideoConfig] 设置的帧率值。由于不同的手机厂商的硬件和算法策略不同,该接口在不同的机型或同一机型的前后摄像头上,效果存在一定差异。

useVideoDevice:

useVideoDevice:
- (void)useVideoDevice:(NSString *) deviceID;
选择使用某个视频设备
Declared in ZegoExpressEngine.h

参数

名称类型描述
deviceIDNSString *通过 [getVideoDeviceList] 获取的某个设备的 ID

详情

只适用于 Windows / macOS / Linux

useVideoDevice:channel:

useVideoDevice:channel:
- (void)useVideoDevice:(NSString *) deviceID channel:(ZegoPublishChannel) channel;
选择使用某个视频设备,支持设置指定推流通道
Declared in ZegoExpressEngine.h

参数

名称类型描述
deviceIDNSString *通过 [getVideoDeviceList] 获取的某个设备的 ID
channelZegoPublishChannel推流通道

详情

只适用于 Windows / macOS / Linux

getVideoDeviceList

getVideoDeviceList
- (NSArray<ZegoDeviceInfo *> *)getVideoDeviceList;
获取视频设备列表
Declared in ZegoExpressEngine.h

只适用于 Windows / macOS / Linux

视频设备列表

getDefaultVideoDeviceID

getDefaultVideoDeviceID
- (NSString *)getDefaultVideoDeviceID;
获取默认视频设备 ID
Declared in ZegoExpressEngine.h

只适用于 Windows / macOS / Linux

默认视频设备 ID

startSoundLevelMonitor

startSoundLevelMonitor
- (void)startSoundLevelMonitor;
启动声浪监控。
Declared in ZegoExpressEngine.h

启动监控后可通过 [onCapturedSoundLevelUpdate] 回调接收本地采集音频声浪,以及 [onRemoteSoundLevelUpdate] 回调接收远端拉流音频声浪。开发者可在进入房间之前,调用 [startPreview] 与此函数,并与 [onCapturedSoundLevelUpdate] 结合来判断音频设备是否正常工作。

  • 业务场景:在推拉流过程中,判断麦上的用户谁在说话,并做 UI 展示。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 支持版本:1.1.0 及以上。
  • 注意事项: 1. [onCapturedSoundLevelUpdate] 与 [onRemoteSoundLevelUpdate] 回调通知周期为 100 ms。 2. 启动声浪监控后,即使未启动本地音频采集,onCapturedSoundLevelUpdate也会有回调,声浪值为0。

startSoundLevelMonitor:

startSoundLevelMonitor:
- (void)startSoundLevelMonitor:(unsigned int) millisecond;
启动声浪监控,支持设置监听间隔。
Declared in ZegoExpressEngine.h

参数

名称类型描述
millisecondunsigned int声浪的监控时间周期,单位为毫秒,取值范围 [100, 3000]。默认 100 ms。

详情

启动监控后可通过 [onCapturedSoundLevelUpdate] 回调接收本地采集音频声浪,以及 [onRemoteSoundLevelUpdate] 回调接收远端拉流音频声浪。开发者可在进入房间之前,调用 [startPreview] 与此函数,并与 [onCapturedSoundLevelUpdate] 结合来判断音频设备是否正常工作。

  • 业务场景:在推拉流过程中,判断麦上的用户谁在说话,并做 UI 展示。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 支持版本:1.15.0 及以上。
  • 注意事项: 1. [onCapturedSoundLevelUpdate] 与 [onRemoteSoundLevelUpdate] 回调通知周期为参数设置的值,若需要使用声浪进阶功能,请使用同名重载函数(参数类型为 ZegoSoundLevelConfig)代替。 2. 启动声浪监控后,即使未启动本地音频采集,onCapturedSoundLevelUpdate也会有回调,声浪值为0。

startSoundLevelMonitorWithConfig::

startSoundLevelMonitorWithConfig::
- (void)startSoundLevelMonitorWithConfig:(ZegoSoundLevelConfig *) config;
启动声浪监控,支持开启进阶功能。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoSoundLevelConfig *启动声浪监控的配置。

详情

启动监控后可通过 [onCapturedSoundLevelUpdate] 回调接收本地采集音频声浪,以及 [onRemoteSoundLevelUpdate] 回调接收远端拉流音频声浪。开发者可在进入房间之前,调用 [startPreview] 与此函数,并与 [onCapturedSoundLevelUpdate] 结合来判断音频设备是否正常工作。

  • 业务场景:在推拉流过程中,判断麦上的用户谁在说话,并做 UI 展示。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 支持版本:2.10.0 及以上。
  • 注意事项: 1. [onCapturedSoundLevelUpdate] 与 [onRemoteSoundLevelUpdate] 回调通知周期为参数设置的值。 2. 启动声浪监控后,即使未启动本地音频采集,onCapturedSoundLevelUpdate也会有回调,声浪值为0。

stopSoundLevelMonitor

stopSoundLevelMonitor
- (void)stopSoundLevelMonitor;
停止声浪监控。
Declared in ZegoExpressEngine.h

停止监控后将停止回调本地采集以及远端拉流的音频声浪回调。

  • 调用时机:在创建引擎 [createEngine] 后。
  • 相关接口:可通过 [startSoundLevelMonitor] 启动声浪监控。
  • 支持版本:1.1.0 及以上。

startAudioSpectrumMonitor

startAudioSpectrumMonitor
- (void)startAudioSpectrumMonitor;
启动音频频谱监控。
Declared in ZegoExpressEngine.h

启动监控后可通过 [onCapturedAudioSpectrumUpdate] 回调接收本地采集音频频谱,以及 [onRemoteAudioSpectrumUpdate] 回调接收远端音频声浪。

  • 业务场景:在主播 K 歌场景中,已经推流或拉流的前提下,让主播或观众看到音调与音量变化的动画。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 支持版本:1.1.0 及以上。
  • 注意事项:[onCapturedAudioSpectrumUpdate] 与 [onRemoteAudioSpectrumUpdate] 回调通知周期为 100 ms。

startAudioSpectrumMonitor:

startAudioSpectrumMonitor:
- (void)startAudioSpectrumMonitor:(unsigned int) millisecond;
启动音频频谱监控,支持设置监听间隔。
Declared in ZegoExpressEngine.h

参数

名称类型描述
millisecondunsigned int音频频谱的监控时间周期,单位为毫秒,最小值为 10。默认 500 ms。

详情

启动监控后可通过 [onCapturedAudioSpectrumUpdate] 回调接收本地采集音频频谱,以及 [onRemoteAudioSpectrumUpdate] 回调接收远端音频声浪。

  • 业务场景:在主播 K 歌场景中,已经推流或拉流的前提下,让主播或观众看到音调与音量变化的动画。
  • 调用时机:在创建引擎 [createEngine] 后。
  • 支持版本:1.15.0 及以上。
  • 注意事项:[onCapturedAudioSpectrumUpdate] 与 [onRemoteAudioSpectrumUpdate] 回调通知周期为参数设置的值。

stopAudioSpectrumMonitor

stopAudioSpectrumMonitor
- (void)stopAudioSpectrumMonitor;
停止音频频谱监控。
Declared in ZegoExpressEngine.h

停止监控后将停止回调本地采集以及远端拉流的音频频谱回调。

  • 调用时机:在创建引擎 [createEngine] 后。
  • 相关接口:可通过 [startAudioSpectrumMonitor] 启动音频频谱监控。
  • 支持版本:1.1.0 及以上。

enableHeadphoneMonitor:

enableHeadphoneMonitor:
- (void)enableHeadphoneMonitor:(BOOL) enable;
开启/关闭 耳返。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOLtrue: 开启耳返, false: 关闭耳返。

详情

开启耳返,用户使用麦克风采集声音时会听到自己的声音。

  • 调用时机:在创建引擎 [createEngine] 后。
  • 默认值:关闭。
  • 支持版本:1.9.0 及以上。
  • 注意事项: 1. 同时连接耳机和麦克风时该设置才实际生效。 2. 耳返默认是在采集之后、前处理之前返回,如果需要在前处理之后返回请咨询 ZEGO 技术支持。

setHeadphoneMonitorVolume:

setHeadphoneMonitorVolume:
- (void)setHeadphoneMonitorVolume:(int) volume;
设置耳返音量。
Declared in ZegoExpressEngine.h

参数

名称类型描述
volumeint采集耳返音量大小,取值 [0, 200],默认 60。

详情

设置耳返音量。

  • 调用时机:在创建引擎 [createEngine] 后。
  • 相关接口:可通过 [enableHeadphoneMonitor] 开关耳返。
  • 支持版本:1.9.0 及以上。
  • 注意事项:同时连接耳机和麦克风时该设置才实际生效。

enableMixSystemPlayout:

enableMixSystemPlayout:
- (void)enableMixSystemPlayout:(BOOL) enable;
开启/关闭系统声卡采集。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOLtrue: 开启声卡采集, false: 关闭声卡采集

详情

开启声卡采集,将系统播放的声音混入推流中,如浏览器播放的声音、第三方播放器软件播放的声音等。

  • 默认值:默认关闭。
  • 调用时机:调用 [startPublishingStream] 或 [startPreview] 后调用此函数。
  • 相关接口:[setMixSystemPlayoutVolume] 设置系统声卡采集的音量。
  • 平台差异:仅支持 Windows、macOS。
  • 支持版本:1.9.0 及以上。
  • 使用限制:无。
  • 注意事项:系统声卡声音不包含拉流声音、媒体播放器声音和音效播放器声音。

setMixSystemPlayoutVolume:

setMixSystemPlayoutVolume:
- (void)setMixSystemPlayoutVolume:(int) volume;
设置系统声卡采集的音量。
Declared in ZegoExpressEngine.h

参数

名称类型描述
volumeint声卡采集音量。有效范围 [0, 200],默认为 100。

详情

只适用于 macOS

enableMixEnginePlayout:

enableMixEnginePlayout:
- (void)enableMixEnginePlayout:(BOOL) enable;
是否将 SDK 播放的声音混到推流中。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOLtrue: 开启, false: 关闭

详情

开启后将 SDK 播放的声音混入推流中。

  • 业务场景:用户需要将 SDK 播放的声音混入推流中,例如直播上课场景时,老师与学生连麦,老师可以将拉流声音混入推流中。
  • 默认值:默认关闭。
  • 调用时机:调用 [startPublishingStream] 或 [startPreview] 后调用此函数。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。

startAudioVADStableStateMonitor:

startAudioVADStableStateMonitor:
- (void)startAudioVADStableStateMonitor:(ZegoAudioVADStableStateMonitorType) type;
开始语音的稳态检测。
Declared in ZegoExpressEngine.h

参数

名称类型描述
typeZegoAudioVADStableStateMonitorType语音检测器类型。

详情

启动监控后可通过 [onAudioVADStateUpdate] 回调接收指定类型的音频语音检测回调。

  • 业务场景:例如指定采集后类型而且使用麦克风采集时,就可以通过这个接口检测主播是否有持续稳定的语音输入。
  • 调用时机:开发者可在推流之前,调用 [startPreview] 与此函数,并与 [onAudioVADStateUpdate] 结合来判断音频设备是否正常工作。
  • 相关接口:[stopAudioVADStableStateMonitor]
  • 支持版本:2.14.0 及以上。
  • 使用限制:[onAudioVADStateUpdate] 回调通知周期 3 秒。

startAudioVADStableStateMonitor:millisecond:

startAudioVADStableStateMonitor:millisecond:
- (void)startAudioVADStableStateMonitor:(ZegoAudioVADStableStateMonitorType) type millisecond:(int) millisecond;
开始语音的稳态检测,可设置检测周期。
Declared in ZegoExpressEngine.h

参数

名称类型描述
typeZegoAudioVADStableStateMonitorType语音检测器类型。
millisecondint检测周期 默认值 3000,有效值 [200, 10000]

详情

启动监控后可通过 [onAudioVADStateUpdate] 回调接收指定类型的音频语音检测回调。

  • 业务场景:例如指定采集后类型而且使用麦克风采集时,就可以通过这个接口检测主播是否有持续稳定的语音输入。
  • 调用时机:开发者可在推流之前,调用 [startPreview] 与此函数,并与 [onAudioVADStateUpdate] 结合来判断音频设备是否正常工作。
  • 相关接口:[stopAudioVADStableStateMonitor]
  • 支持版本:2.17.0 及以上。
  • 使用限制:无。

stopAudioVADStableStateMonitor:

stopAudioVADStableStateMonitor:
- (void)stopAudioVADStableStateMonitor:(ZegoAudioVADStableStateMonitorType) type;
停止语音的稳态检测。
Declared in ZegoExpressEngine.h

参数

名称类型描述
typeZegoAudioVADStableStateMonitorType语音检测器类型。

详情

调用该接口后不再能接收到指定类型的 [onAudioVADStateUpdate] 回调。

  • 调用时机:无。
  • 相关接口:[startAudioVADStableStateMonitor]
  • 支持版本:2.14.0 及以上。
  • 使用限制:无。

getCurrentAudioDevice:

getCurrentAudioDevice:
- (ZegoDeviceInfo *)getCurrentAudioDevice:(ZegoAudioDeviceType) deviceType;
获取当前使用的音频设备信息。
Declared in ZegoExpressEngine.h

参数

名称类型描述
deviceTypeZegoAudioDeviceType音频设备类型。是否必填:是。

详情

获取当前使用的音频设备信息。

  • 业务场景:用于需要手动在多个音频设备间切换的场景。
  • 调用时机:调用 [startPublishingStream] 或 [startPreview] 后调用此函数。
  • 相关接口:可通过 [getDefaultAudioDeviceID] 获取默认音频设备 ID。
  • 支持版本:2.12.0 及以上。
  • 使用限制:仅支持 Windows 和 macOS。

返回值

音频设备信息。

enableAEC:

enableAEC:
- (void)enableAEC:(BOOL) enable;
是否开启回声消除。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启回声消除;true 表示开启;false 表示关闭

详情

打开回声消除, SDK 会对采集到的音频数据进行过滤以降低音频中的回音成分。

  • 业务场景:当需要降低回声以提高通话质量和用户体验时,可以开启此功能。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 相关接口:开发者可通过 [enableHeadphoneAEC] 以设置当使用耳机时是否也开启回声消除;可通过 [setAECMode] 设置回声消除的模式。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:回声消除功能仅支持处理经过 SDK 播放的声音,例如拉流、媒体播放器、音效播放器等功能播放的声音。未调用此函数前,SDK 内部会自动判断是否需要使用 AEC,一旦调用了此函数则不再自动判断。

enableHeadphoneAEC:

enableHeadphoneAEC:
- (void)enableHeadphoneAEC:(BOOL) enable;
是否在使用耳机时开启回声消除。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启;true 表示开启;false 表示关闭。

详情

当使用 [enableAEC] 开启了回声消除后,对于移动端设备来说只在使用扬声器时开启。如果需要在使用耳机时开启或者关闭回声消除,请调用此函数。

  • 业务场景:当移动端设备连接了一个外置声卡作为音频输出源时,为了消除这种情况下的回声,需要调用此函数开启回声消除。
  • 默认值:Android 默认关闭,iOS 默认开启。
  • 调用时机:需要在 [createEngine] 之后,[startPublishingStream]、 [startPlayingStream]、 [startPreview]、 [createMediaPlayer]、 [createAudioEffectPlayer] 和 [createRealTimeSequentialDataManager] 之前调用。
  • 相关接口:不使用耳机时可通过 [enableAEC] 设置 SDK 是否开启回声消除。
  • 平台差异:仅支持 iOS 和 Android。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:开启回声消除会增加耳返延迟。在 iOS 平台,SDK 内部无法区分耳机跟外置声卡,如果使用此函数关闭使用耳机时的系统回声消除,则在用户接入外部声卡时会采集外部声卡播放的声音,导致回声问题。

setAECMode:

setAECMode:
- (void)setAECMode:(ZegoAECMode) mode;
设置回声消除模式
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoAECMode回声消除模式

详情

当使用 [enableAEC] 开启了回声消除后,可通过此函数切换不同的回声消除模式以控制消除回声数据的程度。

  • 业务场景:当默认的回声消除效果不符合预期时,可通过此函数调整回声消除模式。
  • 默认值:未调用此函数时,默认的回声消除模式为 [Aggressive] 激进模式。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 支持版本:1.1.0 及以上。
  • 使用限制:仅在开启了回声消除功能后此函数设置的值才有效。

enableAGC:

enableAGC:
- (void)enableAGC:(BOOL) enable;
开/关自动增益控制
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启自动增益控制;true 表示开启;false 表示关闭

详情

开启该功能后,SDK 能够自动调节麦克风音量,适应远近拾音,保持音量稳定。

  • 业务场景:当需要保障音量稳定性以提高通话质量和用户体验时,可以开启此功能。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:未调用此函数前,SDK 内部会自动判断是否需要使用 AGC,一旦调用了此函数则不再自动判断。

enableANS:

enableANS:
- (void)enableANS:(BOOL) enable;
开/关噪声抑制
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启噪声抑制;true 表示开启噪声抑制;false 表示关闭噪声抑制

详情

开启该功能后,可以使人声更加清晰。

  • 业务场景:当需要抑制噪声以提高通话质量和用户体验时,可以开启此功能。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 相关接口:此功能对持续性的噪声(例如下雨声等白噪音)抑制效果较好,如果需要抑制瞬态噪声,请使用 [enableTransientANS];可通过 [setANSMode] 设置噪声抑制的模式。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:未调用此函数前,SDK 内部会自动判断是否需要使用 ANS,一旦调用了此函数则不再自动判断。

enableTransientANS:

enableTransientANS:
- (void)enableTransientANS:(BOOL) enable;
开/关瞬态噪声抑制
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启瞬态噪声抑制;true 表示开启;false 表示关闭

详情

用于抑制敲击键盘、桌子等瞬态噪声。

  • 业务场景:当需要抑制瞬态噪声以提高通话质量和用户体验时,可以开启此功能。
  • 默认值:未调用此函数时,默认不开启瞬态噪声抑制。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 相关接口:此函数开启后不会抑制常规噪声,如果需要开启常规噪声抑制,请使用 [enableANS]
  • 支持版本:1.17.0 及以上。
  • 使用限制:无。

setANSMode:

setANSMode:
- (void)setANSMode:(ZegoANSMode) mode;
设置音频噪声抑制模式
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoANSMode噪声抑制模式

详情

当使用 [enableANS] 开启了噪声抑制后,可通过此函数切换不同的噪声抑制模式以控制抑制噪声数据的程度。

  • 业务场景:当默认的噪声抑制效果不符合预期时,可通过此函数调整噪声抑制模式。
  • 默认值:未调用此函数时,默认的噪声抑制模式为 [Medium] 中等模式。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 支持版本:1.1.0 及以上。
  • 使用限制:仅在开启了噪声抑制功能后此函数设置的值才有效。

enableSpeechEnhance:level:

enableSpeechEnhance:level:
- (void)enableSpeechEnhance:(BOOL) enable level:(int) level;
开启或关闭人声增强。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启人声增强;true 表示开启;false 表示关闭
levelint增强等级;取值范围在 [0, 10]

详情

开启或关闭人声增强功能。

  • 业务场景:在 KTV 外放场景中,由于 3A 损伤和距离原因,会导致人声较弱或虚或不清晰,需要通过人声增强技术提升外放体验。
  • 默认值:未调用此函数时,此功能默认关闭。
  • 调用时机:需要在 [createEngine] 之后调用,支持动态修改。
  • 支持版本:3.3.0 及以上。
  • 使用限制:无。
  • 注意事项:1. 若重复调用本接口,则使用最后一次调用的设置;
  1. DestroyEngine 后,设置才会失效。

enableAudioMixing:

enableAudioMixing:
- (void)enableAudioMixing:(BOOL) enable;
开/关混音功能
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启混音功能;true 表示开启;false 表示关闭

详情

开启混音功能后,SDK 将把开发者自己准备的音频数据与 SDK 采集的音频数据做混音后再推流出去。

  • 业务场景:当开发者有需要往推流的音频中混入自己的歌曲、音效等音频数据时,可以使用此功能。
  • 默认值:未调用此函数时,此功能默认关闭。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 相关接口:开启混音后,开发者还需要调用 [setAudioMixingHandler] 设置混音回调,从而能在 [onAudioMixingCopyData] 回调中给 SDK 提供需要混音的音频数据。
  • 支持版本:1.9.0 及以上,即将废弃。建议使用媒体播放器 [createMediaPlayer] 或者音效播放器 [createAudioEffectPlayer] 来实现混音功能。
  • 使用限制:无。
  • 注意事项:开始混音后,SDK 默认会将混音的音频在本地推流端播放出来,如果不希望在本地播放而是仅在远端拉流端播放,请调用 [muteLocalAudioMixing] 设置混音本地静音。推荐使用音效/媒体播放器混音。

setAudioMixingHandler:

setAudioMixingHandler:
- (void)setAudioMixingHandler:(nullable id<ZegoAudioMixingHandler>) handler;
设置混音回调
Declared in ZegoExpressEngine.h

参数

名称类型描述
handlernullable id<ZegoAudioMixingHandler>混音回调

详情

通过 [enableAudioMixing] 开启混音功能后,开发者还需要调用此函数设置混音回调,从而能在 [onAudioMixingCopyData] 回调中给 SDK 提供需要混音的音频数据。

  • 业务场景:当开发者有需要往推流的音频中混入自己的歌曲、音效等音频数据时,可以使用此功能。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 支持版本:1.9.0 及以上。
  • 使用限制:无。
  • 注意事项:当再次调用此函数设置回调后,之前设置的混音回调将覆盖。

muteLocalAudioMixing:

muteLocalAudioMixing:
- (void)muteLocalAudioMixing:(BOOL) mute;
静音或恢复本地播放混音声音。
Declared in ZegoExpressEngine.h

参数

名称类型描述
muteBOOL是否静音本地混音;true 表示禁止播放播放;false 表示开启

详情

当调用此函数静音了本地播放混音后,本地混音端(推流端)将听不到通过 [onAudioMixingCopyData] 提供给 SDK 混音的播放声音,而远端(拉流端)依然能听到混音。

  • 业务场景:当开发者有需要往推流的音频中混入自己的歌曲、音效等音频数据时,但混入的音频仅希望给拉流方听见,而不想给本地预览,可以使用此功能。
  • 默认值:未调用此函数时,默认为不静音,即 false。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 支持版本:1.9.0 及以上。
  • 使用限制:无。

setAudioMixingVolume:

setAudioMixingVolume:
- (void)setAudioMixingVolume:(int) volume;
设置混音音量(同时设置本地和远端的音量)
Declared in ZegoExpressEngine.h

参数

名称类型描述
volumeint混音音量,取值范围是 0 ~ 200,默认为 100。

详情

通过 [enableAudioMixing] 开启混音功能后,开发者可通过此函数设置混入 SDK 的混音数据音量大小。

  • 业务场景:当开发者有需要往推流的音频中混入自己的歌曲、音效等音频数据时,并且想调整混音的音量大小时,可以使用此功能。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 相关接口:如果需要单独设置本地播放或远端播放的混音数据音量,请使用带 type 参数的同名函数。
  • 支持版本:1.9.0 及以上。
  • 使用限制:无。
  • 注意事项:此函数会同时设置本地播放以及远端播放的混音数据音量大小。

setAudioMixingVolume:type:

setAudioMixingVolume:type:
- (void)setAudioMixingVolume:(int) volume type:(ZegoVolumeType) type;
设置混音音量(可分别设置本地、远端的音量)
Declared in ZegoExpressEngine.h

参数

名称类型描述
volumeint混音音量,取值范围是 0 ~ 200,默认为 100。
typeZegoVolumeType混音本地播放音量/混音推流中的音量

详情

通过 [enableAudioMixing] 开启混音功能后,开发者可通过此函数设置混入 SDK 的混音数据音量大小。

  • 业务场景:当开发者有需要往推流的音频中混入自己的歌曲、音效等音频数据时,并且想调整混音的音量大小时,可以使用此功能。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 支持版本:1.9.0 及以上。
  • 使用限制:无。
  • 注意事项:此函数可以单独设置本地播放或者远端播放的混音数据音量大小。

startEffectsEnv

startEffectsEnv
- (void)startEffectsEnv;
开启 Effects 美颜环境。
Declared in ZegoExpressEngine.h

开启 Effects 美颜环境。SDK 内部会使用固定的视频帧数据类型进行传输,Windows 平台只支持视频帧裸数据, Apple 平台只支持 CVPixelBuffer,Android 平台只支持 texture2d。

  • 业务场景:常用于视频通话、直播等场景。
  • 默认值:未调用此函数时,默认不启动美颜环境。
  • 调用时机:必须在调用 [startPreview]、[startPublishingStream] 之前设置。如果需要修改配置,请先调用 [logoutRoom] 登出房间,否则不会生效。
  • 相关接口:[enableEffectsBeauty] 开关美颜,[setEffectsBeautyParam] 设置美颜参数。
  • 支持版本:2.16.0 及以上。
  • 使用限制:此函数只支持 Android 系统 5.0 及以上,Android SDK 版本 21 及以上。
  • 注意事项:此美颜功能为基础功能,如不符合开发者的预期,可使用自定义视频前处理功能 [enableCustomVideoProcessing] 或者自定义视频采集功能 [enableCustomVideoCapture] 对接即构 AI 美颜 SDK [ZegoEffects] https://doc-zh.zego.im/article/9556 以获得最佳效果。

stopEffectsEnv

stopEffectsEnv
- (void)stopEffectsEnv;
关闭 Effects 美颜环境。
Declared in ZegoExpressEngine.h

关闭 Effects 美颜环境。

  • 业务场景:常用于视频通话、直播等场景。
  • 调用时机:必须在调用 [startPreview]、[startPublishingStream] 之前设置。如果需要修改配置,请先调用 [logoutRoom] 登出房间,否则不会生效。
  • 相关接口:[enableEffectsBeauty] 开关美颜,[setEffectsBeautyParam] 设置美颜参数。
  • 支持版本:2.16.0 及以上。
  • 使用限制:此函数只支持 Android 系统 5.0 及以上,Android SDK 版本 21 及以上。
  • 注意事项:此美颜功能为基础功能,如不符合开发者的预期,可使用自定义视频前处理功能 [enableCustomVideoProcessing] 或者自定义视频采集功能 [enableCustomVideoCapture] 对接即构 AI 美颜 SDK [ZegoEffects] https://doc-zh.zego.im/article/9556 以获得最佳效果。

enableEffectsBeauty:

enableEffectsBeauty:
- (void)enableEffectsBeauty:(BOOL) enable;
开启或关闭美颜效果。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启美颜效果,true 开启;false 关闭,默认为 false。

详情

支持基础美颜功能,包括美白、红润、磨皮、锐化。

  • 业务场景:通常用于视频通话、直播等场景。
  • 调用时机:必须在调用 [startEffectsEnv] 开启美颜环境后才能调用此函数。
  • 默认值:未调用此函数时,默认不开启美颜效果。
  • 相关接口:可调用 [setEffectsBeautyParam] 函数调整美颜参数。
  • 支持版本:2.16.0 及以上。
  • 使用限制:此函数如果使用在 Android 平台上只支持 5.0 及以上,SDK 版本 21 及以上。
  • 注意事项:此美颜功能为基础功能,如不符合开发者的预期,可使用自定义视频前处理功能 [enableCustomVideoProcessing] 或者自定义视频采集功能 [enableCustomVideoCapture] 对接即构 AI 美颜 SDK [ZegoEffects] https://doc-zh.zego.im/article/9556 以获得最佳效果。

setEffectsBeautyParam:

setEffectsBeautyParam:
- (void)setEffectsBeautyParam:(ZegoEffectsBeautyParam *) param;
设置美颜效果参数。
Declared in ZegoExpressEngine.h

参数

名称类型描述
paramZegoEffectsBeautyParam *美颜选项参数。

详情

设置美颜参数,包括美白、红润、磨皮、锐化。

  • 业务场景:通常用于视频通话、直播等场景。
  • 调用时机:必须在调用 [startEffectsEnv] 开启美颜环境后才能调用此函数。
  • 相关接口:可调用 [enableEffectsBeauty] 开启或关闭美颜效果。
  • 支持版本:2.16.0 及以上。
  • 使用限制:此函数只支持 Android 系统 5.0 及以上,Android SDK 版本 21 及以上。

setAudioEqualizerGain:bandGain:

setAudioEqualizerGain:bandGain:
- (void)setAudioEqualizerGain:(int) bandIndex bandGain:(float) bandGain;
设置音效均衡器(EQ)。
Declared in ZegoExpressEngine.h

参数

名称类型描述
bandIndexint频谱子带索引,取值范围 [0, 9],分别对应 10 个频带,中心频率分别是 [31, 62, 125, 250, 500, 1K, 2K, 4K, 8K, 16K] Hz。
bandGainfloat指定频带的增益值,取值范围 [-15, 15],默认值为 0,如果所有频带的增益值全部为 0,即关闭 EQ 功能。

详情

可通过调用本函数设置音效均衡器调整音色。

  • 业务场景:通常用于语聊房、KTV 等场景。
  • 调用时机:需要在引擎启动之后调用才有效。
  • 支持版本:1.12.0 及以上。
  • 使用限制:无。

setVoiceChangerPreset:

setVoiceChangerPreset:
- (void)setVoiceChangerPreset:(ZegoVoiceChangerPreset) preset;
通过预设枚举设置变声。
Declared in ZegoExpressEngine.h

参数

名称类型描述
presetZegoVoiceChangerPreset变声预设枚举。

详情

可通过调用本函数设置预设变声效果。

  • 业务场景:通常用于直播、语聊房和 KTV 等场景。
  • 调用时机:需要在 [createEngine] 之后调用才有效。
  • 相关接口: 如需自定义变声效果,可使用 [setVoiceChangerParam]。 本函数与 [setReverbPreset] 同时使用效果可能和预期有差异,如需同时使用,建议先开启变声,再开启混响。 使用机器人或空灵预设变声效果时,会修改混响或混响回声参数。因此,在使用上述预设变声效果后调用 [setVoiceChangerParam], [setReverbAdvancedParam], [setReverbEchoParam] 等函数可能影响变声效果。 如需自定义混响/回声/变声/电音效果可通过 [setReverbAdvancedParam], [setReverbEchoParam], [setVoiceChangerParam], [setElectronicEffects] 四个函数组合配置使用。
  • 支持版本:1.17.0 及以上。

setVoiceChangerParam:

setVoiceChangerParam:
- (void)setVoiceChangerParam:(ZegoVoiceChangerParam *) param;
设置变声的具体参数。
Declared in ZegoExpressEngine.h

参数

名称类型描述
paramZegoVoiceChangerParam *变声参数。

详情

可通过调用本函数设置自定义变声效果。

  • 业务场景:通常用于直播、语聊房和 KTV 等场景。
  • 调用时机:需要在 [createEngine] 之后调用才有效。
  • 相关接口: 如需使用常见的变声效果,可使用 [setVoiceChangerPreset] 函数。 如需自定义混响/回声/变声效果可通过 [setReverbAdvancedParam], [setReverbEchoParam], [setVoiceChangerParam] 三个函数组合配置使用。
  • 支持版本:1.10.0 及以上。

setReverbPreset:

setReverbPreset:
- (void)setReverbPreset:(ZegoReverbPreset) preset;
通过预设枚举设置混响。
Declared in ZegoExpressEngine.h

参数

名称类型描述
presetZegoReverbPreset混响预设枚举。

详情

可通过调用本函数设置预设混响效果。

  • 业务场景:通常用于直播、语聊房和 KTV 等场景。
  • 调用时机:需要在 [createEngine] 之后调用才有效。支持推流过程中调用本函数动态设置混响效果。
  • 相关接口: 如需自定义混响效果,请使用 [setReverbAdvancedParam]。 本函数与 [setVoiceChangerPreset] 同时使用效果可能和预期有差异,如需同时使用,建议先开启变声,再开启混响。 如需自定义混响/回声/变声效果可通过 [setReverbAdvancedParam], [setReverbEchoParam], [setVoiceChangerParam] 三个函数组合配置使用。
  • 支持版本:1.17.0 及以上。

setReverbAdvancedParam:

setReverbAdvancedParam:
- (void)setReverbAdvancedParam:(ZegoReverbAdvancedParam *) param;
设置混响的具体参数。
Declared in ZegoExpressEngine.h

参数

名称类型描述
paramZegoReverbAdvancedParam *混响高级参数。

详情

可通过调用本函数设置自定义混响效果。

  • 业务场景:通常用于直播、语聊房和 KTV 等场景。
  • 调用时机:需要在 [createEngine] 之后调用才有效。
  • 相关接口: 如需使用常见的混响效果,可使用 [setReverbPreset] 函数。 如需自定义混响/回声/变声效果可通过 [setReverbAdvancedParam], [setReverbEchoParam], [setVoiceChangerParam] 三个函数组合配置使用。
  • 支持版本:1.10.0 及以上。
  • 注意事项:推流过程中动态设置不同的值都会生效,当全部参数都设置成 0 时,混响关闭。

setReverbEchoParam:

setReverbEchoParam:
- (void)setReverbEchoParam:(ZegoReverbEchoParam *) param;
设置混响回声效果的具体参数。
Declared in ZegoExpressEngine.h

参数

名称类型描述
paramZegoReverbEchoParam *混响回声效果参数。

详情

可通过调用本函数设置混响回声效果。可搭配变声、混响以实现自定义各式各样的声音效果。

  • 业务场景:通常用于直播、语聊房和 KTV 等场景。
  • 调用时机:需要在 [createEngine] 之后调用才有效。
  • 相关接口:如需自行配置混响/回声/变声效果请通过 [setReverbAdvancedParam], [setReverbEchoParam], [setVoiceChangerParam] 三个函数组合使用。
  • 支持版本:1.17.0 及以上。

enableVirtualStereo:angle:

enableVirtualStereo:angle:
- (void)enableVirtualStereo:(BOOL) enable angle:(int) angle;
开启或关闭推流时的虚拟立体声效果。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOLtrue 代表开启虚拟立体声,false 代表关闭虚拟立体声。
angleint虚拟立体声中声源的角度,范围为 -1 ~ 360,90 为正前方,0 / 180 / 270 分别对应最右边 / 最左边 / 正后方;特别的,设置 -1 时为全方位虚拟立体声效果。

详情

可通过调用本函数开启/关闭推流时的虚拟立体声效果。

  • 业务场景:通常用于直播、语聊房和 KTV 等场景。
  • 调用时机:需要在 [createEngine] 之后调用才有效。
  • 支持版本:1.10.0 及以上;注意:从 2.15.0 版本开始,角度参数支持设置 -1 以呈现全方位虚拟立体声效果。
  • 注意事项:需要调用 [setAudioConfig] 设置双声道后虚拟立体声才能生效。

enablePlayStreamVirtualStereo:angle:streamID:

enablePlayStreamVirtualStereo:angle:streamID:
- (void)enablePlayStreamVirtualStereo:(BOOL) enable angle:(int) angle streamID:(NSString *) streamID;
开启或关闭拉流时的虚拟立体声效果。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOLtrue 代表开启虚拟立体声,false 代表关闭虚拟立体声。
angleint虚拟立体声中声源的角度,范围为 0 ~ 360,90 为正前方,0 / 180 / 270 分别对应最右边 / 最左边 / 正后方。
streamIDNSString *流 ID。

详情

可通过调用本函数开启/关闭拉流时的虚拟立体声效果。

  • 业务场景:通常用于直播、语聊房和 KTV 等场景。
  • 调用时机:需要在 [createEngine] 之后调用才有效。
  • 支持版本:2.8.0 及以上。
  • 注意事项:在拉流之前和之后可以动态切换和设置角度参数。停止拉流后,虚拟立体声会自动重置和关闭。

setElectronicEffects:mode:tonal:

setElectronicEffects:mode:tonal:
- (void)setElectronicEffects:(BOOL) enable mode:(ZegoElectronicEffectsMode) mode tonal:(int) tonal;
开启或关闭电音效果。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOLtrue 代表开启电音效果,false 代表关闭电音效果。
modeZegoElectronicEffectsMode电音参考的调式。
tonalint电音在某个调式下的起始音高,代表声音一个八度的12个半音,取值范围 [0, 11]。

详情

可通过调用本函数开启/关闭电音效果。

  • 业务场景:通常用于直播、语聊房和清唱场景。
  • 默认值:未调用此接口时,默认关闭电音效果。
  • 调用时机:需要在 [createEngine] 之后调用才有效。
  • 相关接口:可通过 [setVoiceChangerPreset] 设置常见电音配置。
  • 支持版本:2.13.0 及以上。
  • 使用限制:无。
  • 注意事项:当 mode 参数为和声小调时,tonal 参数不生效。

enableColorEnhancement:params:channel:

enableColorEnhancement:params:channel:
- (void)enableColorEnhancement:(BOOL) enable params:(ZegoColorEnhancementParams *) params channel:(ZegoPublishChannel) channel;
开启色彩增强。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启;true 表示开启;false 表示关闭。
paramsZegoColorEnhancementParams *色彩增强参数。
channelZegoPublishChannel推流通道。

详情

可通过调用本函数开启/关闭色彩增强。

  • 业务场景:常用于视频通话、直播等场景。
  • 默认值:未调用此接口时,默认关闭色彩增强。
  • 调用时机:需要在 [createEngine] 之后调用才有效。
  • 支持版本:3.11.0 及以上。

createRealTimeSequentialDataManager:

createRealTimeSequentialDataManager:
- (nullable ZegoRealTimeSequentialDataManager *)createRealTimeSequentialDataManager:(NSString *) roomID;
创建实时有序数据管理器对象
Declared in ZegoExpressEngine.h

参数

名称类型描述
roomIDNSString *填写已经登录过的房间 ID,后续所有实时有序数据业务都将在此房间中开展。

详情

创建一个用于发送/接受实时有序数据的管理器对象。

  • 业务场景:需要使用实时有序数据以实现诸如云游戏、远程桌面等业务时可以使用此功能。
  • 调用时机:登录房间 [loginRoom] 之后。
  • 支持版本:2.14.0 及以上。
  • 使用限制:能且仅能为每个已 [loginRoom] 的房间 ID 创建一个对应的管理器对象,即在单房间模式下仅能创建一个对象,多房间模式下可创建多个对象。
  • 注意事项:无。

返回值

实时有序数据管理器对象,超过最大数量限制后将返回 nil

destroyRealTimeSequentialDataManager:

destroyRealTimeSequentialDataManager:
- (void)destroyRealTimeSequentialDataManager:(ZegoRealTimeSequentialDataManager *) manager;
销毁实时有序数据管理器对象
Declared in ZegoExpressEngine.h

参数

名称类型描述
managerZegoRealTimeSequentialDataManager *需要销毁的实时有序数据管理器对象

详情

销毁 [ZegoRealTimeSequentialDataManager] 实时有序数据管理器对象。

  • 业务场景:不再需要使用实时有序数据功能时,可通过此函数销毁 [createRealTimeSequentialDataManager] 函数创建出来的实例对象。
  • 调用时机:当需要销毁实时有序数据管理器对象时。
  • 支持版本:2.14.0 及以上。
  • 使用限制:销毁后,开发者需要自行释放持有的 [ZegoRealTimeSequentialDataManager] 实例对象,并且销毁后也不要再调用此实例对象的函数。
  • 注意事项:无。

sendBroadcastMessage:roomID:callback:

sendBroadcastMessage:roomID:callback:
- (void)sendBroadcastMessage:(NSString *) message roomID:(NSString *) roomID callback:(nullable ZegoIMSendBroadcastMessageCallback) callback;
发送房间广播消息。
Declared in ZegoExpressEngine.h

参数

名称类型描述
messageNSString *消息内容。是否必填:是。取值范围:长度不超过 1024 字节。
roomIDNSString *房间 ID,不得为空,最大长度小于 128 字节的字符串。
注意事项:
1.房间 ID 由您自己定义。
2. 仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', ''。
3. 如果需要与 Web SDK 互通,请不要使用 '%'。
callbacknullable ZegoIMSendBroadcastMessageCallback发送广播消息结果通知。是否必填:否。注意事项:传 [nil] 则意味着不接收回调通知。

详情

向房间发送广播消息,已经登录相同房间的用户能收到消息,消息可靠。

  • 业务场景:一般在直播房间内使用。
  • 调用时机:调用 [loginRoom] 登录房间之后。
  • 相关回调:可通过 [onIMRecvBroadcastMessage] 接收到房间广播消息。
  • 相关接口:可通过 [sendBarrageMessage] 函数发送弹幕消息,可通过 [sendCustomCommand] 函数发送自定义信令。
  • 支持版本:1.2.1 及以上。
  • 使用限制:同一房间内的广播消息发送频率不能高于 10条/s。单个用户在一个房间内调用此接口的最大QPS为2,关于此函数的使用限制,请参考 https://doc-zh.zego.im/article/7581 或联系 ZEGO 技术支持。

sendBarrageMessage:roomID:callback:

sendBarrageMessage:roomID:callback:
- (void)sendBarrageMessage:(NSString *) message roomID:(NSString *) roomID callback:(nullable ZegoIMSendBarrageMessageCallback) callback;
发送房间弹幕消息。
Declared in ZegoExpressEngine.h

参数

名称类型描述
messageNSString *消息内容。是否必填:是。取值范围:长度不超过 1024 字节。
roomIDNSString *房间 ID,不得为空,最大长度小于 128 字节的字符串。
注意事项:
1.房间 ID 由您自己定义。
2. 仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', ''。
3. 如果需要与 Web SDK 互通,请不要使用 '%'。
callbacknullable ZegoIMSendBarrageMessageCallback发送弹幕消息结果通知。是否必填:否。注意事项:传 [nil] 则意味着不接收回调通知。

详情

向房间发送弹幕消息,已经登录相同房间的用户能收到消息,消息不可靠。

  • 业务场景:一般用于房间内有大量消息收发,且不需要保证消息可靠性的场景,例如直播弹幕。
  • 调用时机:调用 [loginRoom] 登录房间之后。
  • 相关回调:可通过 [onIMRecvBarrageMessage] 接收到房间弹幕消息。
  • 相关接口:可通过 [sendBroadcastMessage] 函数发送广播消息,可通过 [sendCustomCommand] 函数发送自定义信令。
  • 支持版本:1.5.0 及以上。
  • 使用限制:同一房间内的弹幕消息发送频率不能高于 20条/s。关于此函数的使用限制,请参考 https://doc-zh.zego.im/article/7581 或联系 ZEGO 技术支持。

sendCustomCommand:toUserList:roomID:callback:

sendCustomCommand:toUserList:roomID:callback:
- (void)sendCustomCommand:(NSString *) command toUserList:(nullable NSArray<ZegoUser *> *) toUserList roomID:(NSString *) roomID callback:(nullable ZegoIMSendCustomCommandCallback) callback;
发送自定义信令。
Declared in ZegoExpressEngine.h

参数

名称类型描述
commandNSString *自定义信令内容。是否必填:是。取值范围:最大长度为 1024 字节。注意事项:为保护隐私,请勿在此接口填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
toUserListnullable NSArray<ZegoUser *> *信令的接收者列表。是否必填:是。取值范围:用户列表或者 [nil]。注意事项:为 [nil] 时 SDK 会向房间内所有用户发送自定义信令。
roomIDNSString *房间 ID,不得为空,最大长度小于 128 字节的字符串。
注意事项:
1.房间 ID 由您自己定义。
2. 仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', ''。
3. 如果需要与 Web SDK 互通,请不要使用 '%'。
callbacknullable ZegoIMSendCustomCommandCallback发送信令结果通知。是否必填:否。注意事项:传 [nil] 则意味着不接收回调通知。

详情

向已经登录相同房间的其他用户发送点对点的信令,消息可靠。

  • 业务场景:一般用于远程控制信令或用户与用户之间的消息发送。
  • 调用时机:调用 [loginRoom] 登录房间之后。
  • 相关回调:可通过 [onIMRecvCustomCommand] 接收到房间自定义信令。
  • 相关接口:可通过 [sendBroadcastMessage] 函数发送广播消息,可通过 [sendBarrageMessage] 函数发送弹幕消息。
  • 隐私保护声明:请勿在此接口填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
  • 支持版本:1.2.1 及以上。
  • 使用限制:同一房间内向单个用户发送的自定义消息频率不能高于 200条/s,向多个用户发送的自定义消息不能高于 10条/s。关于此函数的使用限制,请参考 https://doc-zh.zego.im/article/7581 或联系 ZEGO 技术支持。

sendTransparentMessage:roomID:callback:

sendTransparentMessage:roomID:callback:
- (void)sendTransparentMessage:(ZegoRoomSendTransparentMessage*) message roomID:(NSString *) roomID callback:(nullable ZegoRoomSendTransparentMessageCallback) callback;
发送透传消息。
Declared in ZegoExpressEngine.h

参数

名称类型描述
messageZegoRoomSendTransparentMessage*发送透传消息的结构信息。
roomIDNSString *房间 ID,不得为空,最大长度小于 128 字节的字符串。
注意事项:
1.房间 ID 由您自己定义。
2. 仅支持数字,英文字符 和 '~', '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+', '=', '-', '`', ';', '’', ',', '.', '<', '>', ''。
3. 如果需要与 Web SDK 互通,请不要使用 '%'。
callbacknullable ZegoRoomSendTransparentMessageCallback发送信令结果通知。是否必填:否。注意事项:传 [nil] 则意味着不接收回调通知。

详情

向房间内发送透传消息。

  • 业务场景:一般用于远程控制信令或用户与用户之间的消息发送。
  • 调用时机:调用 [loginRoom] 登录房间之后。
  • 相关回调:当发送的消息, mode 指定为 ZegoRoomTransparentMessageModeOnlyClient 或者 ZegoRoomTransparentMessageModeClientAndServer 可通过 [onRecvRoomTransparentMessage] 接收到发送消息的内容。
  • 隐私保护声明:请勿在此接口填写用户敏感信息,包括但不限于手机号、身份证号、护照编号、真实姓名等。
  • 支持版本:3.11.0 及以上。
  • 使用限制:同一房间内向单个用户发送的自定义消息频率不能高于 200条/s 。

createMediaPlayer

createMediaPlayer
- (nullable ZegoMediaPlayer *)createMediaPlayer;
创建媒体播放器实例对象。
Declared in ZegoExpressEngine.h

创建媒体播放器实例对象。

  • 业务场景:常用于播放媒体资源场景,例如播放视频文件,结合自定义视频采集将媒体资源的视频数据推送出去,远端可拉流观看。
  • 调用时机:在初始化 SDK [createEngine] 之后。
  • 相关接口:用户可以调用 [destroyMediaPlayer] 销毁媒体播放器实例对象。
  • 支持版本:2.1.0 及以上。
  • 使用限制:目前最多支持创建 10 个实例,超过后将返回 nil。
  • 注意事项:媒体播放器的实例越多,对设备的性能开销越大。

媒体播放器实例,超过最大数量限制后将返回 nil。

destroyMediaPlayer:

destroyMediaPlayer:
- (void)destroyMediaPlayer:(ZegoMediaPlayer *) mediaPlayer;
销毁媒体播放器实例对象。
Declared in ZegoExpressEngine.h

参数

名称类型描述
mediaPlayerZegoMediaPlayer *媒体播放器实例对象。

详情

销毁媒体播放器实例对象。

  • 相关接口:用户可以调用 [createMediaPlayer] 创建媒体播放器实例对象。
  • 支持版本:2.1.0 及以上。

createAudioEffectPlayer

createAudioEffectPlayer
- (nullable ZegoAudioEffectPlayer *)createAudioEffectPlayer;
创建音效播放器实例对象。
Declared in ZegoExpressEngine.h

创建音效播放器实例对象。

  • 业务场景:当需要播放简短的声音效果,比如鼓掌,欢呼声等时,可以使用音效播放器来实现。
  • 调用时机:在 [createEngine] 之后可调用。
  • 相关接口:[destroyAudioEffectPlayer]。
  • 支持版本:1.16.0 及以上。
  • 使用限制:目前最多支持创建 1 个实例,超过后将返回 nil。

音效播放器实例,超过最大数量限制后将返回 nil。

destroyAudioEffectPlayer:

destroyAudioEffectPlayer:
- (void)destroyAudioEffectPlayer:(ZegoAudioEffectPlayer *) audioEffectPlayer;
销毁音效播放器实例对象。
Declared in ZegoExpressEngine.h

参数

名称类型描述
audioEffectPlayerZegoAudioEffectPlayer *音效播放器实例对象。

详情

销毁指定的音效播放器实例对象。

  • 调用时机:在 [createAudioEffectPlayer] 之后可调用。
  • 相关接口:[createAudioEffectPlayer]。
  • 支持版本:1.16.0 及以上。
  • 使用限制:无。

createMediaDataPublisher:

createMediaDataPublisher:
- (nullable ZegoMediaDataPublisher *)createMediaDataPublisher:(ZegoMediaDataPublisherConfig *) config;
创建媒体数据推流器实例对象
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoMediaDataPublisherConfig *配置媒体数据推流器。

详情

开发者可以使用此接口创建 ZegoMediaDataPublisher 对象,来推本地的媒体资源文件,以实现服务器端推流的场景,例如 AI 课堂。

  • 业务场景:常用于服务器端推流的场景,例如 AI 课堂。
  • 调用时机:在调用 [createEngine] 函数创建引擎后。
  • 支持版本:3.4.0 及以上。
  • 注意事项:该接口返回指定推流通道的实例对象。如果已经创建了,会返回已创建的实例对象。

返回值

媒体数据推流器实例。

destroyMediaDataPublisher:

destroyMediaDataPublisher:
- (void)destroyMediaDataPublisher:(ZegoMediaDataPublisher *) mediaDataPublisher;
销毁媒体数据推流器实例对象。
Declared in ZegoExpressEngine.h

参数

名称类型描述
mediaDataPublisherZegoMediaDataPublisher *媒体数据推流器实例对象

详情

销毁媒体数据推流器实例对象。

  • 业务场景:常用于服务器端推流的场景,例如 AI 课堂。
  • 调用时机:在调用 [createEngine] 函数创建引擎后。
  • 支持版本:2.17.0 及以上。

startRecordingCapturedData:channel:

startRecordingCapturedData:channel:
- (void)startRecordingCapturedData:(ZegoDataRecordConfig *) config channel:(ZegoPublishChannel) channel;
开始本地录制,直接将音视频数据录制到本地文件。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoDataRecordConfig *录制配置对象。
channelZegoPublishChannel推流通道。

详情

开始录制本端音频或音视频,直接将音视频数据录制到本地文件,录制的数据将与该通道推流的数据一致。

  • 相关回调:开始录制后将会收到 [onCapturedDataRecordStateUpdate] 录制状态回调和 [onCapturedDataRecordProgressUpdate] 录制进度回调。
  • 支持版本:1.10.0 及以上。
  • 使用限制:无。
  • 注意事项:录制过程中不可以停止预览 [stopPreview] 或停止推流 [stopPublishingStream],否则 SDK 将主动结束当前录制任务。媒体播放器的数据需要混入到推流中才能录制。

stopRecordingCapturedData:

stopRecordingCapturedData:
- (void)stopRecordingCapturedData:(ZegoPublishChannel) channel;
结束录制本端音频或音视频。
Declared in ZegoExpressEngine.h

参数

名称类型描述
channelZegoPublishChannel推流通道。

详情

结束录制本端音频或音视频。

  • 调用时机:在 [startRecordingCapturedData] 之后。
  • 支持版本:1.10.0 及以上。
  • 使用限制:无。

setDataRecordEventHandler:

setDataRecordEventHandler:
- (void)setDataRecordEventHandler:(nullable id<ZegoDataRecordEventHandler>) eventHandler;
设置数据录制事件回调。
Declared in ZegoExpressEngine.h

参数

名称类型描述
eventHandlernullable id<ZegoDataRecordEventHandler>数据录制事件回调。

详情

实现 ZegoDataRecordEventHandler 中的函数,以获取当前录制的状态和录制进度等。

  • 调用时机:在 [createEngine] 后。
  • 支持版本:1.10.0 及以上。
  • 使用限制:无。

startPerformanceMonitor:

startPerformanceMonitor:
- (void)startPerformanceMonitor:(unsigned int) millisecond;
启动系统性能监控。
Declared in ZegoExpressEngine.h

参数

名称类型描述
millisecondunsigned int监控时间周期。 单位为毫秒。取值范围为 [1000, 10000]。默认值为 2000 ms。

详情

启动系统性能监控,检测系统和应用的 CPU 使用率、内存使用率。支持设置监听时间间隔。

  • 业务场景:通过监控系统性能,协助用户快速定位、解决性能问题,提升用户体验。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 相关回调:启动系统性能监控后,可通过 [onPerformanceStatusUpdate] 接收系统性能状态回调。[onPerformanceStatusUpdate] 回调通知周期为 millisecond 参数设置的值。
  • 相关接口:可通过 [stopPerformanceMonitor] 停止系统性能监控。
  • 支持版本:1.19.0 及以上。
  • 使用限制:无。

stopPerformanceMonitor

stopPerformanceMonitor
- (void)stopPerformanceMonitor;
停止系统性能监控。
Declared in ZegoExpressEngine.h

停止系统性能监控。停止系统性能监控后,将停止触发 [onPerformanceStatusUpdate] 回调。

  • 业务场景:通过监控系统性能,协助用户快速定位、解决性能问题,提升用户体验。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 相关接口:可通过 [startPerformanceMonitor] 启动系统性能监控。
  • 支持版本:1.19.0 及以上。
  • 使用限制:无。

startNetworkProbe:callback:

startNetworkProbe:callback:
- (void)startNetworkProbe:(ZegoNetworkProbeConfig *) config callback:(nullable ZegoNetworkProbeResultCallback) callback;
启动网络探测。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoNetworkProbeConfig *网络探测配置。
callbacknullable ZegoNetworkProbeResultCallback网络探测结果回调。

详情

本地网络的一些问题可能会导致音视频通话失败。通过调用本函数可以探测当前各网络协议层是否正常,协助定位和解决相关的网络问题。

  • 业务场景:在推拉流之前,可通过网络探测定位一些可能存在的网络问题。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 相关接口:可通过 [stopNetworkProbe] 停止网络探测。
  • 支持版本:2.3.0 及以上。
  • 使用限制:SDK 在同一时刻不会进行多个网络探测,即若存在进行中的网络探测时,重复调用本函数将不生效。
  • 注意事项:SDK 内部依次探测 http、tcp、udp。如果中途探测失败,将不会继续后续探测。因此读取探测结果中的各项值时,需注意判空。一次网络探测可能耗时比较长,开发者可按需调用 [stopNetworkProbe] 来停止网络探测。不建议在推拉流过程中启动网络探测。

stopNetworkProbe

stopNetworkProbe
- (void)stopNetworkProbe;
停止网络探测。
Declared in ZegoExpressEngine.h

停止网络探测。

  • 业务场景:在推拉流之前,可通过网络探测定位一些可能存在的网络问题。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 相关接口:可通过 [startNetworkProbe] 启动网络探测。
  • 支持版本:2.3.0 及以上。
  • 使用限制:无。

testNetworkConnectivity:

testNetworkConnectivity:
- (void)testNetworkConnectivity:(ZegoTestNetworkConnectivityCallback) callback;
测试网络连通性
Declared in ZegoExpressEngine.h

参数

名称类型描述
callbackZegoTestNetworkConnectivityCallback网络连通性测试结果通知

详情

测试网络连通性。

startNetworkSpeedTest:

startNetworkSpeedTest:
- (void)startNetworkSpeedTest:(ZegoNetworkSpeedTestConfig *) config;
启动网络测速。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoNetworkSpeedTestConfig *网络测速配置。

详情

网络连通状态下的上行/下行网络测速。

  • 业务场景:用于检测当前网络环境是否适合推/拉指定码率的流。
  • 调用时机:需要在 [loginRoom] 后调用。若在测速中途开始推流/拉流,则测速会自动停止。
  • 相关接口:可通过 [stopNetworkSpeedTest] 停止网络测速。
  • 支持版本:1.20.0 及以上。
  • 使用限制:单次网络测速默认最大允许测试时间为30秒。
  • 注意事项:可监听 [onNetworkSpeedTestQualityUpdate] 回调来获取测速结果,每 3 秒回调一次结果。若测速过程中发生异常,将会触发 [onNetworkSpeedTestError] 回调。若重复多次调用本函数,将以最后一次调用的测速配置为准。

startNetworkSpeedTest:interval:

startNetworkSpeedTest:interval:
- (void)startNetworkSpeedTest:(ZegoNetworkSpeedTestConfig *) config interval:(unsigned int) interval;
启动网络测速,支持设置测速周期。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoNetworkSpeedTestConfig *网络测速度配置。
intervalunsigned int网络测速周期。单位为毫秒,默认为 3000 ms。

详情

网络连通状态下的上行/下行网络测速。

  • 业务场景:用于检测当前网络环境是否适合推/拉指定码率的流。
  • 调用时机:需要在 [loginRoom] 后调用。若在测速中途开始推流/拉流,则测速会自动停止。
  • 相关接口:可通过 [stopNetworkSpeedTest] 停止网络测速。
  • 支持版本:1.20.0 及以上。
  • 使用限制:单次网络测速默认最大允许测试时间为30秒。
  • 注意事项:可监听 [onNetworkSpeedTestQualityUpdate] 回调来获取测速结果,每 3 秒回调一次结果。若测速过程中发生异常,将会触发 [onNetworkSpeedTestError] 回调。若重复多次调用本函数,将以最后一次调用的测速配置为准。

stopNetworkSpeedTest

stopNetworkSpeedTest
- (void)stopNetworkSpeedTest;
停止网络测速。
Declared in ZegoExpressEngine.h

停止网络测速。

  • 业务场景:用于检测当前网络环境是否适合推/拉指定码率的流。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 相关接口:可通过 [startNetworkSpeedTest] 启动网络测速。
  • 支持版本:1.20.0 及以上。
  • 使用限制:无。
  • 注意事项:停止网络测速后,将不再触发 [onNetworkSpeedTestQualityUpdate] 回调。

getNetworkTimeInfo

getNetworkTimeInfo
- (ZegoNetworkTimeInfo *)getNetworkTimeInfo;
获取同步网络时间信息。
Declared in ZegoExpressEngine.h

获取当前网络时间(NTP),包括当前网络时间的时间戳和最大误差。

  • 业务场景:在进行多端行为同步时,需要获取同步网络时间对当前时间进行校准。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 支持版本:2.9.0 及以上。
  • 使用限制:无。

startDumpData:

startDumpData:
- (void)startDumpData:(ZegoDumpDataConfig *) config;
转储音视频数据。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoDumpDataConfig *转储数据配置

详情

转储音视频数据。

  • 业务场景:这是调试工具。当推流时发现音/视频采集,3A处理,或者其他环境的处理有问题时,可以通过转储音/频数据并上传到 ZEGO 服务端做一步分析。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 相关接口:可通过 [stopDumpData] 结束。
  • 支持版本:3.10.0 及以上。
  • 使用限制:仅支持 Android 和 iOS 转储视频。
  • 注意事项:开始转储数据后,会触发 [onStartDumpData] 回调。为了避免占用过多存储空间,视频转储如果超过30秒会自动停止,并触发 [onStopDumpData] 回调。

stopDumpData

stopDumpData
- (void)stopDumpData;
停止转储数据
Declared in ZegoExpressEngine.h

停止转储数据。

  • 业务场景:这是调试工具。当推流时发现音频采集,3A处理,或者其他环境的处理有问题时,可以通过转储音频数据并上传到 ZEGO 服务端做一步分析。
  • 调用时机:需要在 [startDumpData] 之后调用。
  • 支持版本:3.10.0 及以上。
  • 使用限制:无
  • 注意事项:会触发 [onStopDumpData] 回调。

uploadDumpData

uploadDumpData
- (void)uploadDumpData;
上传转储数据到 ZEGO 服务端
Declared in ZegoExpressEngine.h

上传转储数据到 ZEGO 服务端。

  • 业务场景:这是调试工具。当推流时发现音频采集,3A处理,或者其他环境的处理有问题时,可以通过转储音频数据并上传到 ZEGO 服务端做一步分析。
  • 调用时机:需要在 [stopDumpData] 之后调用。
  • 支持版本:3.10.0 及以上。
  • 使用限制:无
  • 注意事项:上传转储数据后,会触发 [onUploadDumpData] 回调。

removeDumpData

removeDumpData
- (void)removeDumpData;
删除转储数据。
Declared in ZegoExpressEngine.h

删除转储数据。

  • 业务场景:这是调试工具。当推流时发现音频采集,3A处理,或者其他环境的处理有问题时,可以通过转储音频数据并上传到 ZEGO 服务端做一步分析。
  • 调用时机:需要在 [stopDumpData] 之后调用。如果转储数据要上传到 ZEGO 服务端,那应该在上传成功后再删除。
  • 支持版本:3.10.0 及以上。
  • 使用限制:无

enableCustomVideoRender:config:

enableCustomVideoRender:config:
- (void)enableCustomVideoRender:(BOOL) enable config:(nullable ZegoCustomVideoRenderConfig *) config;
开始或停止自定义视频渲染。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启
confignullable ZegoCustomVideoRenderConfig *自定义渲染配置

详情

enable 为 "true" 时开启视频自定义渲染,为 "false" 时关闭视频自定义渲染。

  • 业务场景:使用美颜功能或 App 使用了跨平台界面框架(例如 Qt 需要有复杂层级关系的界面以实现高体验的交互)或游戏引擎(例如 Unity, Unreal Engine, Cocos)等。
  • 默认值:没有调用该函数时,默认关闭自定义视频渲染。
  • 调用时机:[createEngine]之后,调用 [startPreview]、[startPublishingStream]、[startPlayingStream]、[createRealTimeSequentialDataManager] 之前设置,且调用 [logoutRoom] 之后才能修改配置。
  • 相关回调:调用 [setCustomVideoRenderHandler] 可设置回调用于获取视频帧数据。[onCapturedVideoFrameRawData] 本地预览视频帧数据回调,[onRemoteVideoFrameRawData] 远端拉流视频帧数据回调。
  • 支持版本:1.9.0 及以上。
  • 注意事项:自定义视频渲染功能可以与自定义视频采集功能同时使用,但当两者同时开启时,自定义视频渲染的本地采集帧回调将不会再被触发,开发者应该直接在自定义视频采集源里直接获取采集视频帧。

setCustomVideoRenderHandler:

setCustomVideoRenderHandler:
- (void)setCustomVideoRenderHandler:(nullable id<ZegoCustomVideoRenderHandler>) handler;
设置自定义视频渲染回调。
Declared in ZegoExpressEngine.h

参数

名称类型描述
handlernullable id<ZegoCustomVideoRenderHandler>自定义视频渲染回调对象

详情

自定义视频渲染,由开发者负责把视频数据渲染到 UI 组件上。设置该回调后,当开发者调用启动预览 [startPreview]、开始推流 [startPublishingStream]、开始拉流[startPlayingStream] 时会触发向开发者抛视频数据的回调函数。

  • 业务场景:使用美颜功能或 App 使用了跨平台界面框架(例如 Qt 需要有复杂层级关系的界面以实现高体验的交互)或游戏引擎(例如 Unity, Unreal Engine, Cocos)等。
  • 调用时机:[createEngine] 之后。
  • 相关回调:[onCapturedVideoFrameRawData] 本地预览视频帧数据回调,[onRemoteVideoFrameRawData] 远端拉流视频帧数据回调。
  • 支持版本:1.9.0 及以上。

enableCapturedVideoCustomVideoRender:channel:

enableCapturedVideoCustomVideoRender:channel:
- (void)enableCapturedVideoCustomVideoRender:(BOOL) enable channel:(ZegoPublishChannel) channel;
开始或停止采集的视频做自定义视频渲染。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启
channelZegoPublishChannel推流通道

详情

在推流过程中开关采集视频的自定义视频渲染。

  • 业务场景:使用美颜功能或 App 使用了跨平台界面框架(例如 Qt 需要有复杂层级关系的界面以实现高体验的交互)或游戏引擎(例如 Unity, Unreal Engine, Cocos)等。
  • 默认值:在[enableCustomVideoRender]开启自定义视频渲染之后,会将所有采集的视频都做自定义视频数据。
  • 调用时机:在[enableCustomVideoRender]开启自定义视频渲染之后,通过调用[enableCapturedVideoCustomVideoRender]单独配置指定通道是否自定义视频渲染。
  • 相关回调:调用 [setCustomVideoRenderHandler] 可设置回调用于获取视频帧数据。[onCapturedVideoFrameRawData] 本地预览视频帧数据回调,[onRemoteVideoFrameRawData] 远端拉流视频帧数据回调。
  • 支持版本:3.13.0 及以上。
  • 注意事项:必须在[enableCustomVideoRender]开启自定义视频渲染之后才可以调用本接口。自定义视频渲染功能可以与自定义视频采集功能同时使用,但当两者同时开启时,自定义视频渲染的本地采集帧回调将不会再被触发,开发者应该直接在自定义视频采集源里直接获取采集视频帧。

enableRemoteVideoCustomVideoRender:streamID:

enableRemoteVideoCustomVideoRender:streamID:
- (void)enableRemoteVideoCustomVideoRender:(BOOL) enable streamID:(NSString *) streamID;
开始或停止远端拉流的视频做自定义视频渲染。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启
streamIDNSString *拉流的流 ID。

详情

在拉流过程中开关视频的自定义视频渲染。

  • 业务场景:使用美颜功能或 App 使用了跨平台界面框架(例如 Qt 需要有复杂层级关系的界面以实现高体验的交互)或游戏引擎(例如 Unity, Unreal Engine, Cocos)等。
  • 默认值:在[enableCustomVideoRender]开启自定义视频渲染之后,会将所有远端拉流的视频都做自定义视频数据。
  • 调用时机:在[enableCustomVideoRender]开启自定义视频渲染之后,通过调用[enableRemoteVideoCustomVideoRender]单独配置指定流是否自定义视频渲染。
  • 相关回调:调用 [setCustomVideoRenderHandler] 可设置回调用于获取视频帧数据。[onCapturedVideoFrameRawData] 本地预览视频帧数据回调,[onRemoteVideoFrameRawData] 远端拉流视频帧数据回调。
  • 支持版本:3.13.0 及以上。
  • 注意事项:必须在[enableCustomVideoRender]开启自定义视频渲染之后才可以调用本接口。

enableCustomVideoCapture:config:

enableCustomVideoCapture:config:
- (void)enableCustomVideoCapture:(BOOL) enable config:(nullable ZegoCustomVideoCaptureConfig *) config;
开始或停止自定义视频采集。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启
confignullable ZegoCustomVideoCaptureConfig *自定义采集配置

详情

enable 为 "true" 时开启视频自定义采集,为 "false" 时关闭视频自定义采集。

  • 业务场景:开发者开发的 App使用了第三方美颜厂商的美颜 SDK,直播非摄像头采集的数据等。
  • 默认值:没有调用该函数时,默认关闭自定义视频采集。
  • 调用时机:[createEngine] 之后,调用 [startPreview]、[startPublishingStream]、[createRealTimeSequentialDataManager] 之前。如果需要修改配置,请先调用 [logoutRoom] 登出房间。
  • 相关回调:当开发者开启自定义采集时,通过调用 [setCustomVideoCaptureHandler] 可设置接收自定义采集启停事件通知。
  • 支持版本:1.9.0 及以上。
  • 注意事项:自定义视频渲染功能可以与自定义视频采集功能同时使用,但当两者同时开启时,自定义视频渲染的本地采集帧回调将不会再被触发,开发者应该直接在自定义视频采集源里直接获取采集视频帧。

enableCustomVideoCapture:config:channel:

enableCustomVideoCapture:config:channel:
- (void)enableCustomVideoCapture:(BOOL) enable config:(nullable ZegoCustomVideoCaptureConfig *) config channel:(ZegoPublishChannel) channel;
开始或停止自定义视频采集,支持设置其他通道的推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启
confignullable ZegoCustomVideoCaptureConfig *自定义采集配置
channelZegoPublishChannel推流通道

详情

enable 为 "true" 时开启视频自定义采集,为 "false" 时关闭视频自定义采集。

  • 业务场景:开发者开发的 App使用了第三方美颜厂商的美颜 SDK,直播非摄像头采集的数据等。
  • 默认值:没有调用该函数时,默认关闭自定义视频采集。
  • 调用时机:[createEngine] 之后,调用 [startPreview]、[startPublishingStream]、[createRealTimeSequentialDataManager] 之前。如果需要修改配置,请先调用 [logoutRoom] 登出房间。
  • 相关回调:当开发者开启自定义采集时,通过调用 [setCustomVideoCaptureHandler] 可设置接收自定义采集启停事件通知。
  • 支持版本:1.9.0 及以上。
  • 注意事项:自定义视频渲染功能可以与自定义视频采集功能同时使用,但当两者同时开启时,自定义视频渲染的本地采集帧回调将不会再被触发,开发者应该直接在自定义视频采集源里直接获取采集视频帧。

setCustomVideoCaptureHandler:

setCustomVideoCaptureHandler:
- (void)setCustomVideoCaptureHandler:(nullable id<ZegoCustomVideoCaptureHandler>) handler;
设置自定义视频采集回调。
Declared in ZegoExpressEngine.h

参数

名称类型描述
handlernullable id<ZegoCustomVideoCaptureHandler>自定义视频采集回调对象

详情

设置自定义视频采集的回调。即由开发者负责采集视频数据,并将采集到的视频数据发送给 SDK 进行视频数据的编码与推送到 ZEGO RTC 服务器。

  • 业务场景:该功能一般为使用第三方美颜功能或游戏录屏直播的开发者使用。
  • 调用时机:[createEngine] 之后。
  • 相关回调:[onStart] 开始采集,[onStop] 停止采集。
  • 支持版本:1.9.0 及以上。
  • 注意事项:由于使用自定义视频采集时,SDK 将不再启动摄像头去采集视频数据,开发者需自行对视频采集源进行视频数据的采集。当开发者调用启动预览 [startPreview]、开始推流 [startPublishingStream] 时会触发通知开发者可以开始发送视频数据的回调函数。当停止预览 [stopPreview] 且 停止推流[stopPublishingStream] 时会触发通知开发者可以停止发送视频数据的回调函数。

sendCustomVideoCaptureTextureData:size:timestamp:

sendCustomVideoCaptureTextureData:size:timestamp:
- (void)sendCustomVideoCaptureTextureData:(GLuint) textureID size:(CGSize) size timestamp:(CMTime) timestamp;
向 SDK 发送自定义采集的视频帧 Texture 数据。
Declared in ZegoExpressEngine.h

参数

名称类型描述
textureIDGLuint纹理 ID
sizeCGSize视频帧的画面宽高
timestampCMTime该视频帧的 UNIX 时间戳,单位为毫秒

详情

向SDK发送自定义采集的视频帧类型为Texture的数据。

  • 调用时机:收到 [onStart] 通知之后,开发者开始采集后调用,在 [onStop] 通知之后结束调用。
  • 相关接口:[enableCustomVideoCapture]、[setCustomVideoCaptureHandler]。
  • 支持版本:1.9.0 及以上。
  • 注意事项:调用此接口必须是 [enableCustomVideoCapture] 传递的参数类型为 GL_TEXTURE_2D 或 GL_TEXTURE_EXTERNAL_OES。

sendCustomVideoCaptureTextureData:size:timestamp:channel:

sendCustomVideoCaptureTextureData:size:timestamp:channel:
- (void)sendCustomVideoCaptureTextureData:(GLuint) textureID size:(CGSize) size timestamp:(CMTime) timestamp channel:(ZegoPublishChannel) channel;
向 SDK 发送自定义采集的视频帧 Texture 数据,支持其他路推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
textureIDGLuint纹理 ID
sizeCGSize视频帧的画面宽高
timestampCMTime该视频帧的 UNIX 时间戳,单位为毫秒
channelZegoPublishChannel推流通道

详情

向SDK发送自定义采集的视频帧类型为Texture的数据。

  • 调用时机:收到 [onStart] 通知之后,开发者开始采集后调用,在 [onStop] 通知之后结束调用。
  • 相关接口:[enableCustomVideoCapture]、[setCustomVideoCaptureHandler]。
  • 支持版本:1.9.0 及以上。
  • 注意事项:调用此接口必须是 [enableCustomVideoCapture] 传递的参数类型为 GL_TEXTURE_2D 或 GL_TEXTURE_EXTERNAL_OES。

sendCustomVideoCapturePixelBuffer:timestamp:

sendCustomVideoCapturePixelBuffer:timestamp:
- (void)sendCustomVideoCapturePixelBuffer:(CVPixelBufferRef) buffer timestamp:(CMTime) timestamp;
向 SDK 发送自定义采集的视频帧 CVPixelBuffer 数据。
Declared in ZegoExpressEngine.h

参数

名称类型描述
bufferCVPixelBufferRef要向 SDK 发送的视频帧数据
timestampCMTime该视频帧的时间戳

详情

向SDK发送自定义采集的视频帧类型为CVPixelBuffer的数据。

  • 调用时机:收到 [onStart] 通知之后,开发者开始采集后调用,在 [onStop] 通知之后结束调用。
  • 相关接口:[enableCustomVideoCapture]、[setCustomVideoCaptureHandler]。
  • 支持版本:1.9.0 及以上。
  • 注意事项:调用此接口必须是 [enableCustomVideoCapture] 传递的参数类型为ZegoVideoBufferTypeCVPixelBuffer。

sendCustomVideoCapturePixelBuffer:timestamp:channel:

sendCustomVideoCapturePixelBuffer:timestamp:channel:
- (void)sendCustomVideoCapturePixelBuffer:(CVPixelBufferRef) buffer timestamp:(CMTime) timestamp channel:(ZegoPublishChannel) channel;
向 SDK 发送自定义采集的视频帧 CVPixelBuffer 数据,支持其他路推流
Declared in ZegoExpressEngine.h

参数

名称类型描述
bufferCVPixelBufferRef要向 SDK 发送的视频帧数据
timestampCMTime该视频帧的时间戳
channelZegoPublishChannel推流通道

详情

向SDK发送自定义采集的视频帧类型为CVPixelBuffer的数据。

  • 调用时机:收到 [onStart] 通知之后,开发者开始采集后调用,在 [onStop] 通知之后结束调用。
  • 相关接口:[enableCustomVideoCapture]、[setCustomVideoCaptureHandler]。
  • 支持版本:1.9.0 及以上。
  • 注意事项:调用此接口必须是 [enableCustomVideoCapture] 传递的参数类型为ZegoVideoBufferTypeCVPixelBuffer。

sendCustomVideoCaptureEncodedData:params:timestamp:

sendCustomVideoCaptureEncodedData:params:timestamp:
- (void)sendCustomVideoCaptureEncodedData:(NSData *) data params:(ZegoVideoEncodedFrameParam *) params timestamp:(CMTime) timestamp;
给 SDK 发送自定义采集的视频帧编码后的数据。
Declared in ZegoExpressEngine.h

参数

名称类型描述
dataNSData *要向 SDK 发送的视频帧数据
paramsZegoVideoEncodedFrameParam *视频帧的参数
timestampCMTime视频帧的索引时间,UNIX 时间戳

详情

向 SDK 发送自定义采集的视频帧编码后的数据。

  • 调用时机:收到 [onStart] 通知之后,开发者开始采集后调用,在 [onStop] 通知之后结束调用。
  • 相关接口:[enableCustomVideoCapture]、[setCustomVideoCaptureHandler]。
  • 支持版本:1.9.0 及以上。
  • 注意事项:推荐每 2s 一个 GOP,每个 I 帧必须携带 SPS 和 PPS,且放在最前面,并且需要把 SPS 和 PPS 与 I 帧合并到一帧进行发送。调用此接口前需要确保调用 [enableCustomVideoCapture] 时指定的参数类型为 [EncodedData]

sendCustomVideoCaptureEncodedData:params:timestamp:channel:

sendCustomVideoCaptureEncodedData:params:timestamp:channel:
- (void)sendCustomVideoCaptureEncodedData:(NSData *) data params:(ZegoVideoEncodedFrameParam *) params timestamp:(CMTime) timestamp channel:(ZegoPublishChannel) channel;
给 SDK 发送自定义采集的视频帧编码后的数据,支持指定推流通道。
Declared in ZegoExpressEngine.h

参数

名称类型描述
dataNSData *要向 SDK 发送的视频帧数据
paramsZegoVideoEncodedFrameParam *视频帧的参数
timestampCMTime视频帧的索引时间,UNIX 时间戳
channelZegoPublishChannel推流通道

详情

向 SDK 发送自定义采集的视频帧编码后的数据。

  • 调用时机:收到 [onStart] 通知之后,开发者开始采集后调用,在 [onStop] 通知之后结束调用。
  • 相关接口:[enableCustomVideoCapture]、[setCustomVideoCaptureHandler]。
  • 支持版本:1.9.0 及以上。
  • 注意事项:推荐每 2s 一个 GOP,每个 I 帧必须携带 SPS 和 PPS,且放在最前面,并且需要把 SPS 和 PPS 与 I 帧合并到一帧进行发送。调用此接口前需要确保调用 [enableCustomVideoCapture] 时指定的参数类型为 [EncodedData]

setCustomVideoCaptureFillMode:

setCustomVideoCaptureFillMode:
- (void)setCustomVideoCaptureFillMode:(ZegoViewMode) mode;
设置自定义视频采集画面缩放填充模式。
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoViewMode画面填充缩放模式

详情

当开启自定义视频采集功能时,可使用此接口设置视频画面的缩放填充模式。

  • 业务场景:如自定义采集分辨率、SDK编码分辨率不一致时,SDK将根据填充模式处理视频帧,调整为编码分辨率。
  • 调用时机:调用 [sendCustomVideoCaptureRawData]、[sendCustomVideoCaptureTextureData]、[sendCustomVideoCapturePixelBuffer]、[sendCustomVideoCaptureEncodedData] 之前。
  • 支持版本:1.10.0 及以上。

setCustomVideoCaptureFillMode:channel:

setCustomVideoCaptureFillMode:channel:
- (void)setCustomVideoCaptureFillMode:(ZegoViewMode) mode channel:(ZegoPublishChannel) channel;
设置自定义视频采集画面缩放填充模式,支持其他路推流
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoViewMode画面填充缩放模式
channelZegoPublishChannel推流通道

详情

当开启自定义视频采集功能时,可使用此接口设置视频画面的缩放填充模式。

  • 业务场景:如自定义采集分辨率、SDK编码分辨率不一致时,SDK将根据填充模式处理视频帧,调整为编码分辨率。
  • 调用时机:调用 [sendCustomVideoCaptureRawData]、[sendCustomVideoCaptureTextureData]、[sendCustomVideoCapturePixelBuffer]、[sendCustomVideoCaptureEncodedData] 之前。
  • 支持版本:1.10.0 及以上。

setCustomVideoCaptureFlipMode:

setCustomVideoCaptureFlipMode:
- (void)setCustomVideoCaptureFlipMode:(ZegoVideoFlipMode) mode;
设置自定义采集画面翻转模式,仅当自定义采集类型为 Texture2D 时,此函数生效。
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoVideoFlipMode画面翻转模式

详情

当开启自定义视频采集功能时,可使用此接口设置视频画面的翻转模式。

  • 调用时机:调用 [sendCustomVideoCaptureRawData],[sendCustomVideoCaptureTextureData],[sendCustomVideoCapturePixelBuffer],[sendCustomVideoCaptureEncodedData] 之前。
  • 支持版本:1.10.0 及以上。
  • 注意事项:只有自定义采集类型为 Texture2D 时,此函数生效。

setCustomVideoCaptureFlipMode:channel:

setCustomVideoCaptureFlipMode:channel:
- (void)setCustomVideoCaptureFlipMode:(ZegoVideoFlipMode) mode channel:(ZegoPublishChannel) channel;
设置自定义采集画面翻转模式,支持其他路推流。仅当自定义采集类型为 Texture2D 时,此函数生效。
Declared in ZegoExpressEngine.h

参数

名称类型描述
modeZegoVideoFlipMode画面翻转模式
channelZegoPublishChannel推流通道

详情

当开启自定义视频采集功能时,可使用此接口设置视频画面的翻转模式。

  • 调用时机:调用 [sendCustomVideoCaptureRawData],[sendCustomVideoCaptureTextureData],[sendCustomVideoCapturePixelBuffer],[sendCustomVideoCaptureEncodedData] 之前。
  • 支持版本:1.10.0 及以上。
  • 注意事项:只有自定义采集类型为 Texture2D 时,此函数生效。

setCustomVideoCaptureRotation:channel:

setCustomVideoCaptureRotation:channel:
- (void)setCustomVideoCaptureRotation:(int) rotation channel:(ZegoPublishChannel) channel;
设置指定推流通道自定义采集画面旋转角度。
Declared in ZegoExpressEngine.h

参数

名称类型描述
rotationint顺时针角度。
channelZegoPublishChannel推流通道。

详情

可通过此函数设置指定推流通道的自定义采集画面的旋转角度。

  • 调用时机:在收到 [onStart] 回调后调用。
  • 支持版本:2.14.0 及以上。
  • 使用限制:当自定义采集类型为 CVPixelBuffer 或 Texture2D 时,此函数生效。

setCustomVideoCaptureDeviceState:state:channel:

setCustomVideoCaptureDeviceState:state:channel:
- (void)setCustomVideoCaptureDeviceState:(BOOL) isEnable state:(ZegoRemoteDeviceState) state channel:(ZegoPublishChannel) channel;
设置指定推流通道自定义采集设备状态。
Declared in ZegoExpressEngine.h

参数

名称类型描述
isEnableBOOL设备是否处于开启状态。
stateZegoRemoteDeviceState设备状态。
channelZegoPublishChannel推流通道。

详情

用户可通过此接口设置指定推流通道的自定义采集设备状态。

  • 调用时机:在收到 [onStart] 回调后调用。
  • 相关回调:拉本地流的远端用户可通过监听 [onRemoteCameraStateUpdate] 获取推流端设备状态变更。
  • 支持版本:2.15.0 及以上。
  • 使用限制:无。

setCustomVideoCaptureRegionOfInterest:channel:

setCustomVideoCaptureRegionOfInterest:channel:
- (void)setCustomVideoCaptureRegionOfInterest:(NSArray<ZegoRoiRect *> *) rectList channel:(ZegoPublishChannel) channel;
设置指定推流通道自定义视频采集编码器的感兴趣区域(ROI)。
Declared in ZegoExpressEngine.h

参数

名称类型描述
rectListNSArray<ZegoRoiRect *> *ROI 矩形区域列表,当前最多支持 6 个区域。
channelZegoPublishChannel推流通道

详情

可通过此函数设置编码器的感兴趣区域(ROI)。

  • 调用时机:在收到 [onStart] 回调后调用。
  • 支持版本:2.16.0 及以上。
  • 使用限制:目前仅特定的视频编码器支持此功能,使用前请联系技术支持。
  • 注意事项:此函数目前为实验性功能,使用前请联系技术支持。

prepareForReplayKit

prepareForReplayKit
- (void)prepareForReplayKit;
初始化 Express ReplayKit 模块
Declared in ZegoExpressEngine.h

仅在 ReplayKit 子进程内使用,主 App 进程内不要使用。

setReplayKitMicrophoneVolume:

setReplayKitMicrophoneVolume:
- (void)setReplayKitMicrophoneVolume:(int) volume;
设置 ReplayKit Microphone 音频音量
Declared in ZegoExpressEngine.h

参数

名称类型描述
volumeint范围为 0 ~ 200,默认为 100。

详情

设置屏幕录制时 Microphone 音频音量。

  • 业务场景:游戏直播场景中设置 Microphone 音频音量。
  • 调用时机:调用 [startPreview] 或 [startPublishingStream] 成功之后再调用才有效。
  • 相关接口:[setReplayKitApplicationVolume], 该方法可以设置屏幕录制时 Application 音频音量。
  • 支持版本:2.13.0 及以上。
  • 使用限制:无。
  • 注意事项:该方法影响类型为 RPSampleBufferTypeAudioMic 的音频音量。

setReplayKitApplicationVolume:

setReplayKitApplicationVolume:
- (void)setReplayKitApplicationVolume:(int) volume;
设置 ReplayKit Application 音频音量
Declared in ZegoExpressEngine.h

参数

名称类型描述
volumeint范围为 0 ~ 200,默认为 100。

详情

设置屏幕录制时 Application 音频音量。

  • 业务场景:游戏直播场景中设置 Application 音频音量。
  • 调用时机:调用 [startPreview] 或 [startPublishingStream] 成功之后再调用才有效。
  • 相关接口:[setReplayKitMicrophoneVolume], 该方法可以设置屏幕录制时 Microphone 音频音量。
  • 支持版本:2.13.0 及以上。
  • 使用限制:无。
  • 注意事项:该方法影响类型为 RPSampleBufferTypeAudioApp 的音频音量。

handleReplayKitSampleBuffer:bufferType

handleReplayKitSampleBuffer:bufferType
- (void)handleReplayKitSampleBuffer:(CMSampleBufferRef)sampleBuffer bufferType:(RPSampleBufferType)bufferType API_AVAILABLE(ios(10.0));
处理 ReplayKit 的 SampleBuffer,支持接收视频与音频 Buffer
Declared in ZegoExpressEngine.h
名称类型描述
sampleBufferCMSampleBufferRefReplayKit 返回的视频或音频 Buffer
bufferTypeRPSampleBufferTypeReplayKit 返回的 Buffer 类型

enableCustomVideoProcessing:config:

enableCustomVideoProcessing:config:
- (void)enableCustomVideoProcessing:(BOOL) enable config:(nullable ZegoCustomVideoProcessConfig *) config;
自定义视频前处理配置开关。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启。是否必填:是。
confignullable ZegoCustomVideoProcessConfig *自定义视频前处理配置。是否必填:是。注意事项:传 nil 则使用平台默认值。

详情

当开发者开启自定义前处理时,通过调用 [setCustomVideoProcessHandler] 可设置设置自定义视频前处理回调。

  • 业务场景:开发者自行采集视频数据或获取到 SDK 采集的视频数据后,若 SDK 自带的基础美颜和水印功能无法满足开发者需求时(例如美颜效果无法达到预期),可以结合 ZegoEffects SDK 对视频进行一些特殊处理,例如美颜、添加挂件等,该过程即为自定义视频前处理。
  • 默认值:默认关闭。
  • 调用时机:必须在调用 [startPreview]、[startPublishingStream]、[createRealTimeSequentialDataManager] 之前设置。如果需要修改配置,请先调用 [logoutRoom] 登出房间,否则不会生效。
  • 相关接口:调用 [setCustomVideoProcessHandler] 函数可设置设置自定义视频前处理回调。
  • 支持版本:2.2.0 及以上(Android/iOS/macOS原生),2.4.0 及以上(Windows/macOS C++)。
  • 使用限制:无。

enableCustomVideoProcessing:config:channel:

enableCustomVideoProcessing:config:channel:
- (void)enableCustomVideoProcessing:(BOOL) enable config:(nullable ZegoCustomVideoProcessConfig *) config channel:(ZegoPublishChannel) channel;
自定义视频前处理配置开关,支持指定推流通道号。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启。是否必填:是。
confignullable ZegoCustomVideoProcessConfig *自定义视频前处理配置。是否必填:是。注意事项:传 nil 则使用平台默认值。
channelZegoPublishChannel推流通道。是否必填:否。默认值:主推流通道。

详情

当开发者开启自定义前处理时,通过调用 [setCustomVideoProcessHandler] 可设置设置自定义视频前处理回调。

  • 业务场景:开发者自行采集视频数据或获取到 SDK 采集的视频数据后,若 SDK 自带的基础美颜和水印功能无法满足开发者需求时(例如美颜效果无法达到预期),可以结合 ZegoEffects SDK 对视频进行一些特殊处理,例如美颜、添加挂件等,该过程即为自定义视频前处理。
  • 默认值:默认关闭。
  • 调用时机:必须在调用 [startPreview]、[startPublishingStream]、[createRealTimeSequentialDataManager] 之前设置。如果需要修改配置,请先调用 [logoutRoom] 登出房间,否则不会生效。
  • 相关接口:调用 [setCustomVideoProcessHandler] 函数可设置设置自定义视频前处理回调。
  • 支持版本:2.2.0 及以上(Android/iOS/macOS原生),2.4.0 及以上(Windows/macOS C++)。
  • 使用限制:无。

setCustomVideoProcessHandler:

setCustomVideoProcessHandler:
- (void)setCustomVideoProcessHandler:(nullable id<ZegoCustomVideoProcessHandler>) handler;
设置自定义视频前处理回调。
Declared in ZegoExpressEngine.h

参数

名称类型描述
handlernullable id<ZegoCustomVideoProcessHandler>自定义视频前处理回调对象。是否必填:是。

详情

当开发者开启自定义前处理时,通过调用 [setCustomVideoProcessHandler] 可设置设置自定义视频前处理回调,获取原始视频数据。

  • 业务场景:开发者自行采集视频数据或获取到 SDK 采集的视频数据后,若 SDK 自带的基础美颜和水印功能无法满足开发者需求时(例如美颜效果无法达到预期),可以结合 ZegoEffects SDK 对视频进行一些特殊处理,例如美颜、添加挂件等,该过程即为自定义视频前处理。
  • 调用时机:在 [startPreview]、[startPublishingStream]、[createRealTimeSequentialDataManager] 之前调用,否则可能会导致获取视频数据的时机过慢。
  • 相关接口:调用 [enableCustomVideoProcessing] 函数可开启自定义视频前处理回调。
  • 支持版本:2.2.0 及以上(Android/iOS/macOS原生),2.4.0 及以上(Windows/macOS C++)。
  • 使用限制:无。

sendCustomVideoProcessedCVPixelBuffer:timestamp:

sendCustomVideoProcessedCVPixelBuffer:timestamp:
- (void)sendCustomVideoProcessedCVPixelBuffer:(CVPixelBufferRef) buffer timestamp:(CMTime) timestamp;
将自定义视频前处理后的 [CVPixelBuffer] 类型视频数据发送给 SDK。
Declared in ZegoExpressEngine.h

参数

名称类型描述
bufferCVPixelBufferRef要向 SDK 发送的 CVPixelBuffer 类型视频帧数据。是否必填:是。
timestampCMTime该视频帧的时间戳。是否必填:是。

详情

开启自定义视频前处理时,将自定义视频前处理后的 [CVPixelBuffer] 格式视频数据发送给 SDK,支持其他路推流。

  • 业务场景:开发者自行采集视频数据或获取到 SDK 采集的视频数据后,若 SDK 自带的基础美颜和水印功能无法满足开发者需求时(例如美颜效果无法达到预期),可以结合 ZegoEffects SDK 对视频进行一些特殊处理,例如美颜、添加挂件等,该过程即为自定义视频前处理。
  • 调用时机:必须在 [onCapturedUnprocessedCVPixelbuffer] 回调中调用。
  • 平台差异:仅在 iOS/macOS 平台生效。
  • 支持版本:2.2.0 及以上(iOS原生),2.4.0及以上(macOS C++)。
  • 使用限制:当调用 [enableCustomVideoProcessing] 开启自定义视频前处理且 config 的 bufferType 传入 [ZegoVideoBufferTypeCVPixelBuffer] 或 [ZegoVideoBufferTypeNV12CVPixelBuffer] 时,此接口生效。

sendCustomVideoProcessedCVPixelBuffer:timestamp:channel:

sendCustomVideoProcessedCVPixelBuffer:timestamp:channel:
- (void)sendCustomVideoProcessedCVPixelBuffer:(CVPixelBufferRef) buffer timestamp:(CMTime) timestamp channel:(ZegoPublishChannel) channel;
将自定义视频前处理后的 [CVPixelBuffer] 类型视频数据发送给 SDK。支持其他路推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
bufferCVPixelBufferRef要向 SDK 发送的 CVPixelBuffer 类型视频帧数据。
timestampCMTime该视频帧的时间戳。
channelZegoPublishChannel推流通道。

详情

开启自定义视频前处理时,将自定义视频前处理后的 [CVPixelBuffer] 格式视频数据发送给 SDK,支持其他路推流。

  • 业务场景:开发者自行采集视频数据或获取到 SDK 采集的视频数据后,若 SDK 自带的基础美颜和水印功能无法满足开发者需求时(例如美颜效果无法达到预期),可以结合 ZegoEffects SDK 对视频进行一些特殊处理,例如美颜、添加挂件等,该过程即为自定义视频前处理。
  • 调用时机:必须在 [onCapturedUnprocessedCVPixelbuffer] 回调中调用。
  • 平台差异:仅在 iOS/macOS 平台生效。
  • 支持版本:2.2.0 及以上(iOS原生),2.4.0及以上(macOS C++)。
  • 使用限制:当调用 [enableCustomVideoProcessing] 开启自定义视频前处理且 config 的 bufferType 传入 [ZegoVideoBufferTypeCVPixelBuffer] 或 [ZegoVideoBufferTypeNV12CVPixelBuffer] 时,此接口生效。

sendCustomVideoProcessedCVPixelBuffer:timestamp:usage:channel:

sendCustomVideoProcessedCVPixelBuffer:timestamp:usage:channel:
- (void)sendCustomVideoProcessedCVPixelBuffer:(CVPixelBufferRef) buffer timestamp:(CMTime) timestamp usage:(ZegoProcessedDataUsageType) usage channel:(ZegoPublishChannel) channel;
将自定义视频前处理后的 [CVPixelBuffer] 类型视频数据发送给 SDK。支持其他路推流,并且支持指定数据用途。
Declared in ZegoExpressEngine.h

参数

名称类型描述
bufferCVPixelBufferRef要向 SDK 发送的 CVPixelBuffer 类型视频帧数据。
timestampCMTime该视频帧的时间戳。
usageZegoProcessedDataUsageType数据的用途
channelZegoPublishChannel推流通道。

详情

开启自定义视频前处理时,将自定义视频前处理后的 [CVPixelBuffer] 格式视频数据发送给 SDK,支持其他路推流。

  • 业务场景:开发者自行采集视频数据或获取到 SDK 采集的视频数据后,若 SDK 自带的基础美颜和水印功能无法满足开发者需求时(例如美颜效果无法达到预期),可以结合 ZegoEffects SDK 对视频进行一些特殊处理,例如美颜、添加挂件等,该过程即为自定义视频前处理。
  • 调用时机:必须在 [onCapturedUnprocessedCVPixelbuffer] 回调中调用。
  • 平台差异:仅在 iOS/macOS 平台生效。
  • 支持版本:3.14.0 及以上(iOS原生, macOS C++)。
  • 使用限制:当调用 [enableCustomVideoProcessing] 开启自定义视频前处理且 config 的 bufferType 传入 [ZegoVideoBufferTypeCVPixelBuffer] 或 [ZegoVideoBufferTypeNV12CVPixelBuffer] 时,此接口生效。

enableCustomAudioCaptureProcessing:config:

enableCustomAudioCaptureProcessing:config:
- (void)enableCustomAudioCaptureProcessing:(BOOL) enable config:(ZegoCustomAudioProcessConfig *) config;
开启本地采集自定义音频处理(耳返前)。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启本地采集自定义音频处理。
configZegoCustomAudioProcessConfig *自定义音频处理配置。

详情

开启自定义音频处理(耳返前),开发者可以通过 [onProcessCapturedAudioData] 收到本地采集的音频帧,并且可以对音频数据进行修改。

  • 业务场景:如果开发者想在采集音频数据后或拉取远端音频数据渲染前,通过自定义处理实现特殊功能(例如变声、美声等)时。
  • 调用时机:需要在 [startPublishingStream]、 [startPlayingStream]、 [startPreview]、 [createMediaPlayer]、 [createAudioEffectPlayer] 和 [createRealTimeSequentialDataManager] 之前调用才有效。
  • 支持版本:1.13.0 及以上。
  • 使用限制:无。

enableCustomAudioCaptureProcessingAfterHeadphoneMonitor:config:

enableCustomAudioCaptureProcessingAfterHeadphoneMonitor:config:
- (void)enableCustomAudioCaptureProcessingAfterHeadphoneMonitor:(BOOL) enable config:(ZegoCustomAudioProcessConfig *) config;
开启本地采集自定义音频处理(耳返后)。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启本地采集自定义音频处理。
configZegoCustomAudioProcessConfig *自定义音频处理配置。

详情

开启自定义音频处理(耳返后),开发者可以通过 [onProcessCapturedAudioDataAfterUsedHeadphoneMonitor] 收到本地采集的音频帧,并且可以对音频数据进行修改。

  • 业务场景:如果开发者想在采集音频数据后或拉取远端音频数据渲染前,通过自定义处理实现特殊功能(例如变声、美声等)时。
  • 调用时机:需要在 [startPublishingStream]、 [startPlayingStream]、 [startPreview]、 [createMediaPlayer]、 [createAudioEffectPlayer] 和 [createRealTimeSequentialDataManager] 之前调用才有效。
  • 支持版本:1.13.0 及以上。
  • 使用限制:无。

enableAlignedAudioAuxData:param:

enableAlignedAudioAuxData:param:
- (void)enableAlignedAudioAuxData:(BOOL) enable param:(ZegoAudioFrameParam *) param;
开启抛出与伴奏对齐的音频混音数据功能。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启抛出对齐的音频混音数据功能。
paramZegoAudioFrameParam *音频帧参数。目前支持 8k、16k、32k、44.1k、48k 的采样率,支持单声道、双声道。

详情

开启抛出与伴奏对齐的音频混音数据功能,开发者可以通过 [onAlignedAudioAuxData] 收到对齐后的音频混音数据。

  • 业务场景:KTV 场景下,若用户想录制人声和伴奏进行处理,可使用该功能。
  • 调用时机:需要在 [createEngine] 之后调用有效。
  • 支持版本:2.22.0 及以上。
  • 使用限制:无。
  • 注意事项:开启抛出与伴奏对齐的音频混音数据功能后,推流数据不含有音频混音数据。

enableBeforeAudioPrepAudioData:param:

enableBeforeAudioPrepAudioData:param:
- (void)enableBeforeAudioPrepAudioData:(BOOL) enable param:(ZegoAudioFrameParam *) param;
开启抛出 SDK 内部音频前处理前的音频数据功能。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启抛出 SDK 内部音频前处理前的音频数据功能。
paramZegoAudioFrameParam *音频帧参数。目前支持 0、16k、32k、44.1k、48k 的采样率,0 表示使用 SDK 内部使用的采样率;支持未知声道、单声道、双声道,未知声道表示使用 SDK 内部使用的声道数。

详情

开启抛出 SDK 内部音频前处理前的音频数据功能,开发者可以通过 [onBeforeAudioPrepAudioData] 收到 SDK 内部音频前处理前的音频数据。

  • 调用时机:需要在 [createEngine] 之后调用有效。
  • 支持版本:3.11.0 及以上。
  • 使用限制:无。

enableCustomAudioRemoteProcessing:config:

enableCustomAudioRemoteProcessing:config:
- (void)enableCustomAudioRemoteProcessing:(BOOL) enable config:(ZegoCustomAudioProcessConfig *) config;
开启远端拉流自定义音频处理。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启远端拉流自定义音频处理。
configZegoCustomAudioProcessConfig *自定义音频处理配置。

详情

开启远端拉流自定义音频处理,开发者可以通过 [onProcessRemoteAudioData] 收到远端拉流的音频帧,并且可以对音频数据进行修改。

  • 业务场景:如果开发者想在拉取远端音频数据渲染前,通过自定义处理实现特殊功能(例如变声、美声等)时。
  • 调用时机:需要在 [startPublishingStream]、 [startPlayingStream]、 [startPreview]、 [createMediaPlayer]、 [createAudioEffectPlayer] 和 [createRealTimeSequentialDataManager] 之前调用才有效。
  • 支持版本:1.13.0 及以上。
  • 使用限制:无。

enableCustomAudioPlaybackProcessing:config:

enableCustomAudioPlaybackProcessing:config:
- (void)enableCustomAudioPlaybackProcessing:(BOOL) enable config:(ZegoCustomAudioProcessConfig *) config;
开启 SDK 播放的音频数据的自定义音频处理。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启 SDK 播放音频数据自定义音频处理。
configZegoCustomAudioProcessConfig *自定义音频处理配置。

详情

开启 SDK 播放的音频数据的自定义音频处理,开发者可以通过 [onProcessPlaybackAudioData] 收到 SDK 全部要播放的音频混合后的数据的音频帧,并且可以对音频数据进行修改。

  • 业务场景:如果开发者想在采集音频数据后,通过自定义处理实现特殊功能(例如变声、美声等)时。
  • 调用时机:需要在 [startPublishingStream]、 [startPlayingStream]、 [startPreview]、 [createMediaPlayer]、 [createAudioEffectPlayer] 和 [createRealTimeSequentialDataManager] 之前调用才有效。
  • 支持版本:1.13.0 及以上。
  • 使用限制:无。

setCustomAudioProcessHandler:

setCustomAudioProcessHandler:
- (void)setCustomAudioProcessHandler:(nullable id<ZegoCustomAudioProcessHandler>) handler;
设置自定义音频处理回调。
Declared in ZegoExpressEngine.h

参数

名称类型描述
handlernullable id<ZegoCustomAudioProcessHandler>自定义音频处理回调。

详情

开启自定义音频处理时,通过此函数设置自定义音频处理回调,开发者可以在回调中修改处理音频帧数据。

  • 业务场景:如果开发者想在采集音频数据后或拉取远端音频数据渲染前,通过自定义处理实现特殊功能(例如变声、美声等)时。
  • 调用时机:创建引擎后。
  • 支持版本:1.13.0 及以上。
  • 使用限制:无。

startAudioDataObserver:param:

startAudioDataObserver:param:
- (void)startAudioDataObserver:(ZegoAudioDataCallbackBitMask) observerBitMask param:(ZegoAudioFrameParam *) param;
开启音频数据回调监测。
Declared in ZegoExpressEngine.h

参数

名称类型描述
observerBitMaskZegoAudioDataCallbackBitMask回调使能掩码标记位,参考 [ZegoAudioDataCallbackBitMask] 枚举;当转换为二进制时,0b01 即 1 << 0 表示触发 [onCapturedAudioData], 0b10 即 1 << 1 表示触发 [onPlaybackAudioData], 0b100 即 1 << 2 表示触发 [onMixedAudioData], 0b1000 即 1 << 3 表示触发 [onPlayerAudioData]。掩码可组合以使不同的回调同时触发。
paramZegoAudioFrameParam *音频帧参数。

详情

开启自定义音频处理时,通过此函数开启音频数据回调监测。

  • 业务场景:需要监测原始音频时。
  • 调用时机:创建引擎后。
  • 支持版本:1.1.0 及以上。
  • 使用限制:当调用此函数后且已通过调用 [setAudioDataHandler] 设置回调后才会触发音频监测。如果要开启 [onPlayerAudioData] 回调,那么还必须正在拉流中,且此时调用 [startAudioDataObserver] 函数传入的采样率不支持 8000Hz、22050Hz 和 24000Hz。
  • 注意事项:该接口会启动音视频引擎,会占用麦克风设备。

stopAudioDataObserver

stopAudioDataObserver
- (void)stopAudioDataObserver;
停止音频数据回调监测。
Declared in ZegoExpressEngine.h

停止音频数据回调监测。

  • 业务场景:需要监测原始音频时。
  • 调用时机:调用 [startAudioDataObserver] 开启音频数据监测后。
  • 支持版本:1.1.0 及以上。

setAudioDataHandler:

setAudioDataHandler:
- (void)setAudioDataHandler:(nullable id<ZegoAudioDataHandler>) handler;
设置额外接收音频数据的回调。
Declared in ZegoExpressEngine.h

参数

名称类型描述
handlernullable id<ZegoAudioDataHandler>接收音频数据的回调对象。

详情

可以调用此函数以接收 SDK 旁路抛出的音频数据。

  • 业务场景:当开发者需要获取远端用户的音频数据或者需要获取本地麦克风采集到的数据另做他用(例如纯音频录制、纯音频第三方监控、纯音频实时分析)时。
  • 调用时机:创建引擎后。
  • 相关接口:开启音频数据监测调用 [startAudioDataObserver],关闭音频数据监测调用 [stopAudioDataObserver]。
  • 支持版本:1.1.0 及以上。
  • 使用限制:所设置的回调需要在调用 [startAudioDataObserver] 之后且正在推流或拉流状态才有效。
  • 注意事项:抛出的音频数据格式为 pcm,SDK 仍然控制声音设备的采集和播放,该功能是复制一份 SDK 内部采集或播放的数据出来给开发者使用。

enableCustomAudioIO:config:

enableCustomAudioIO:config:
- (void)enableCustomAudioIO:(BOOL) enable config:(ZegoCustomAudioConfig *) config;
开启自定义音频 IO 功能。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启自定义音频 IO。
configZegoCustomAudioConfig *自定义音频 IO 的配置。

详情

开启自定义音频 IO 功能,支持 PCM 、AAC 格式数据。

  • 业务场景:如果开发者想在采集音频数据后或拉取远端音频数据渲染前,通过自定义处理实现特殊功能(例如变声、美声等)时。
  • 调用时机:需要在 [startPublishingStream]、 [startPlayingStream]、 [startPreview]、 [createMediaPlayer]、 [createAudioEffectPlayer] 和 [createRealTimeSequentialDataManager] 之前调用才有效。
  • 支持版本:1.10.0 及以上。
  • 使用限制:无。

enableCustomAudioIO:config:channel:

enableCustomAudioIO:config:channel:
- (void)enableCustomAudioIO:(BOOL) enable config:(ZegoCustomAudioConfig *) config channel:(ZegoPublishChannel) channel;
开启自定义音频 IO 功能,支持其他路推流,支持 PCM 、AAC 格式数据。
Declared in ZegoExpressEngine.h

参数

名称类型描述
enableBOOL是否开启自定义音频 IO。
configZegoCustomAudioConfig *自定义音频 IO 的配置。
channelZegoPublishChannel指定要开启自定义音频 IO 的推流通道。

详情

开启自定义音频 IO 功能,支持 PCM 、AAC 格式数据。

  • 业务场景:如果开发者想在采集音频数据后或拉取远端音频数据渲染前,通过自定义处理实现特殊功能(例如变声、美声等)时。
  • 调用时机:需要在 [startPublishingStream]、 [startPlayingStream]、 [startPreview]、 [createMediaPlayer]、 [createAudioEffectPlayer] 和 [createRealTimeSequentialDataManager] 之前调用才有效。
  • 支持版本:1.10.0 及以上。
  • 使用限制:无。

sendCustomAudioCaptureAACData:dataLength:configLength:timestamp:samples:param:channel:

sendCustomAudioCaptureAACData:dataLength:configLength:timestamp:samples:param:channel:
- (void)sendCustomAudioCaptureAACData:(unsigned char *) data dataLength:(unsigned int) dataLength configLength:(unsigned int) configLength timestamp:(CMTime) timestamp samples:(unsigned int) samples param:(ZegoAudioFrameParam *) param channel:(ZegoPublishChannel) channel;
发送自定义音频采集 AAC 数据,支持设置其他通道的推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
dataunsigned char *AAC buffer 数据。
dataLengthunsigned intbuffer 数据的总长度。
configLengthunsigned intAAC specific config 的长度 (注意:AAC encoded data 的长度 encodedLength = dataLength - configLength)。取值范围:[0,64]。
timestampCMTime该 AAC 音频帧的 UNIX 时间戳。
samplesunsigned int该 AAC 音频帧的采样数。取值范围:[480,512,1024,1960,2048]。
paramZegoAudioFrameParam *该 AAC 音频帧的参数。
channelZegoPublishChannel采集音频帧的推流通道。

详情

把采集到的音频 AAC 数据塞给 SDK。

  • 业务场景:开发者需要从现有音频流、音频文件、或者定制的采集系统中获得采集后输入,交给 SDK 传输。
  • 调用时机:在 [enableCustomAudioIO] 且推流成功后。
  • 相关接口:开启自定义音频 IO 功能 [enableCustomAudioIO],开始推流 [startPublishingStream]。
  • 支持版本:2.20.0 及以上。
  • 使用限制:无。

sendCustomAudioCapturePCMData:dataLength:param:

sendCustomAudioCapturePCMData:dataLength:param:
- (void)sendCustomAudioCapturePCMData:(unsigned char *) data dataLength:(unsigned int) dataLength param:(ZegoAudioFrameParam *) param;
发送自定义音频采集 PCM 数据。
Declared in ZegoExpressEngine.h

参数

名称类型描述
dataunsigned char *PCM buffer 数据。
dataLengthunsigned intbuffer 数据的总长度。
paramZegoAudioFrameParam *该 PCM 音频帧的参数。

详情

把采集到的音频 PCM 数据塞给 SDK。

  • 业务场景:1、开发者需要从现有音频流、音频文件、或者定制的采集系统中获得采集后输入,交给 SDK 传输。2、开发者有自己对 PCM 输入源做特殊的音效处理的需求,在音效处理后输入,交给 SDK 传输。
  • 调用时机:在 [enableCustomAudioIO] 且推流成功后。
  • 相关接口:开启自定义音频 IO 功能 [enableCustomAudioIO],开始推流 [startPublishingStream]。
  • 支持版本:1.10.0 及以上。
  • 使用限制:无。

sendCustomAudioCapturePCMData:dataLength:param:channel:

sendCustomAudioCapturePCMData:dataLength:param:channel:
- (void)sendCustomAudioCapturePCMData:(unsigned char *) data dataLength:(unsigned int) dataLength param:(ZegoAudioFrameParam *) param channel:(ZegoPublishChannel) channel;
发送自定义音频采集 PCM 数据,支持其他路推流。
Declared in ZegoExpressEngine.h

参数

名称类型描述
dataunsigned char *PCM buffer 数据。
dataLengthunsigned intbuffer 数据的总长度。
paramZegoAudioFrameParam *该 PCM 音频帧的参数。
channelZegoPublishChannel采集音频帧的推流通道。

详情

把采集到的音频 PCM 数据塞给 SDK。

  • 业务场景:1、开发者需要从现有音频流、音频文件、或者定制的采集系统中获得采集后输入,交给 SDK 传输。2、开发者有自己对 PCM 输入源做特殊的音效处理的需求,在音效处理后输入,交给 SDK 传输。
  • 调用时机:在 [enableCustomAudioIO] 且推流成功后。
  • 相关接口:开启自定义音频 IO 功能 [enableCustomAudioIO],开始推流 [startPublishingStream]。
  • 支持版本:1.10.0 及以上。
  • 使用限制:无。

fetchCustomAudioRenderPCMData:dataLength:param:

fetchCustomAudioRenderPCMData:dataLength:param:
- (void)fetchCustomAudioRenderPCMData:(unsigned char *) data dataLength:(unsigned int) dataLength param:(ZegoAudioFrameParam *) param;
从 SDK 取远端拉流自定义音频渲染 PCM 数据。
Declared in ZegoExpressEngine.h

参数

名称类型描述
dataunsigned char *用于存放音频 PCM 数据的内存块,需要用户自行管理此内存块的生命周期;SDK 将会把音频帧渲染数据拷贝到此内存块上。
dataLengthunsigned int此次需要从 SDK 取的音频数据的长度 (dataLength = duration(此音频帧的时长) * sampleRate * channels * 2(位深 16 bit 即 2 Btye))。
paramZegoAudioFrameParam *指定从 SDK 取的音频帧的参数。ZegoAudioFrameParam 中参数sampleRate必填。

详情

从 SDK 拉取远端流的音频数据,建议对接系统框架来定时调用此函数,以驱动音频数据渲染。

  • 业务场景:当开发者有自己渲染的需求,例如对拉取到的原始 PCM 数据做特殊应用或者处理后再渲染,建议使用 SDK 的自定义音频渲染功能。
  • 调用时机:在 [enableCustomAudioIO] 且拉流成功后。
  • 相关接口:开启自定义音频 IO 功能 [enableCustomAudioIO],开始拉流 [startPlayingStream]。
  • 支持版本:1.10.0 及以上。
  • 使用限制:无。

sendReferenceAudioPCMData:dataLength:param:

sendReferenceAudioPCMData:dataLength:param:
- (void)sendReferenceAudioPCMData:(unsigned char *) data dataLength:(unsigned int) dataLength param:(ZegoAudioFrameParam *) param;
向 SDK 发送由开发者自定义处理后的 PCM 音频数据,用作对自定义渲染音频消除回声的参考。
Declared in ZegoExpressEngine.h

参数

名称类型描述
dataunsigned char *PCM buffer 数据
dataLengthunsigned intbuffer 数据的总长度
paramZegoAudioFrameParam *该 PCM 音频帧的参数

详情

开发者以音频设备时钟为驱动取 PCM 音频数据,处理后用于自定义音频渲染,在提交渲染的同时,调用该函数将处理后的音频数据发回 SDK,以便 SDK 内部将其作为回声消除参考。

  • 业务场景:娱乐场景下,可能需要自定义处理远端传来的 PCM 音频数据,比如合成一段背景音、KTV 伴奏之后再进行渲染播放。与此同时,需要开发者将自行处理后的音频数据发还给 SDK 参考,以便采集后对处理后的音效进行回声消除。
  • 调用时机:在调用 [fetchCustomAudioRenderPCMData] 取到 PCM 音频数据并处理之后,提交给系统渲染播放的同时调用本函数。
  • 支持版本:2.13.0 及以上。
  • 使用限制:必须调用 [setEngineConfig] 开启外部音频数据作为参考,本功能才能生效,具体使用详情可咨询 ZEGO 技术支持。

setCustomAudioIOAudioRoute:

setCustomAudioIOAudioRoute:
- (void)setCustomAudioIOAudioRoute:(ZegoAudioRoute) audioRoute;
设置开启自定义音频 IO 功能后的音频路由。
Declared in ZegoExpressEngine.h

参数

名称类型描述
audioRouteZegoAudioRoute音频路由。

详情

设置开启自定义音频 IO 功能后的音频路由。

  • 业务场景:由业务指定当前音频路由,用于优化 AEC 效果。
  • 调用时机:在 [enableCustomAudioIO], [startPublishingStream] 后调用。
  • 支持版本:3.21.0 及以上。
  • 使用限制:仅支持 iOS、Android。

createRangeAudio

createRangeAudio
- (nullable ZegoRangeAudio *)createRangeAudio;
创建范围语音实例对象。
Declared in ZegoExpressEngine.h

创建范围语音实例对象。

  • 业务场景:常用于游戏语音场景中,用户可通过创建范围语音实例对象使用相关功能。
  • 调用时机:在初始化引擎 [createEngine] 之后。
  • 影响范围:使用范围语音模块,将不能使用基础推拉流 [startPublishingStream]、[startPlayingStream] 等相关函数以及 [onPublisherStateUpdate]、[onPlayerStateUpdate] 等相关回调,否则会出现流混乱的现象。
  • 支持版本:2.11.0 及以上。
  • 使用限制:目前最多支持创建 1 个实例,超过后将返回 nil。

范围语音实例,超过最大数量限制后将返回 nil。

destroyRangeAudio:

destroyRangeAudio:
- (void)destroyRangeAudio:(ZegoRangeAudio *) rangeAudio;
销毁范围语音实例对象。
Declared in ZegoExpressEngine.h

参数

名称类型描述
rangeAudioZegoRangeAudio *范围语音实例对象。

详情

销毁范围语音实例对象。

  • 支持版本:2.11.0 及以上。

createCopyrightedMusic

createCopyrightedMusic
- (nullable ZegoCopyrightedMusic *)createCopyrightedMusic;
创建版权音乐实例对象。
Declared in ZegoExpressEngine.h

创建版权音乐实例对象。

  • 业务场景:常用于在线 KTV 合唱场景中,用户可通过创建版权音乐实例对象使用相关功能。
  • 调用时机:在初始化引擎 [createEngine] 之后。
  • 支持版本:2.13.0 及以上。
  • 使用限制:SDK 只支持创建一个实例,多次调用此函数返回同一个对象。

版权音乐实例,多次调用此函数返回同一个对象。

destroyCopyrightedMusic:

destroyCopyrightedMusic:
- (void)destroyCopyrightedMusic:(ZegoCopyrightedMusic *) copyrightedMusic;
销毁版权音乐实例对象。
Declared in ZegoExpressEngine.h

参数

名称类型描述
copyrightedMusicZegoCopyrightedMusic *版权音乐实例对象。

详情

销毁版权音乐实例对象。

  • 调用时机:在销毁引擎 [destroyEngine] 之前。
  • 支持版本:2.13.0 及以上。

createAudioVADClient

createAudioVADClient
- (nullable ZegoAudioVADClient *)createAudioVADClient;
创建检测音频包类对象。
Declared in ZegoExpressEngine.h

创建检测音频包类对象。

  • 业务场景:可以用于检测音频包是否包含语音。
  • 调用时机:在初始化引擎 [createEngine] 之后。
  • 支持版本:2.21.0 及以上。
  • 使用限制:每条流应该对应一个检测音频包类对象,或者将已有对象重置后再应用于不同的流。

检测音频包类对象。

destroyAudioVADClient:

destroyAudioVADClient:
- (void)destroyAudioVADClient:(ZegoAudioVADClient *) client;
销毁检测音频包类对象。
Declared in ZegoExpressEngine.h

参数

名称类型描述
clientZegoAudioVADClient *检测音频包类对象。

详情

销毁检测音频包类对象。

  • 调用时机:在初始化引擎 [createEngine] 之后。
  • 支持版本:2.21.0 及以上。

createRangeScene

createRangeScene
- (nullable ZegoRangeScene *)createRangeScene;
创建范围场景实例对象。
Declared in ZegoExpressEngine.h

创建范围场景实例对象。

  • 业务场景:常用于虚拟世界场景中,用户可通过范围场景实例对象使用相关功能。
  • 调用时机:通过 [createEngine] 初始化引擎后。
  • 支持版本:3.0.0 及以上。
  • 使用限制:无。

范围场景实例。

destroyRangeScene:

destroyRangeScene:
- (void)destroyRangeScene:(ZegoRangeScene *) rangeScene;
销毁范围场景实例对象。
Declared in ZegoExpressEngine.h

参数

名称类型描述
rangeSceneZegoRangeScene *范围场景实例对象。

详情

销毁范围场景实例对象。

  • 业务场景:常用于虚拟世界场景中,用户可通过获取范围场景实例对象使用相关功能。
  • 调用时机:通过 [createRangeScene] 创建范围场景之后。
  • 支持版本:3.0.0 及以上。
  • 使用限制:无。

getScreenCaptureSourcesWithThumbnailSize:iconSize:

getScreenCaptureSourcesWithThumbnailSize:iconSize:
- (NSArray<ZegoScreenCaptureSourceInfo *> *)getScreenCaptureSourcesWithThumbnailSize:(CGSize) thumbnailSize iconSize:(CGSize) iconSize;
获取屏幕列表或屏幕中的窗口列表。
Declared in ZegoExpressEngine.h

参数

名称类型描述
thumbnailSizeCGSize获取窗口所对应的缩略图尺寸,缩略图可用于绘制在窗口选择界面上。(单位为像素)
iconSizeCGSize获取程序所对应的图标的尺寸。(单位为像素)

详情

获取屏幕列表或屏幕中的窗口列表。

  • 支持版本:3.1.0 及以上
  • 使用限制:只适用于 Windows/macOS 系统

返回值

采集源对象信息列表。

createScreenCaptureSource:sourceType:

createScreenCaptureSource:sourceType:
- (nullable ZegoScreenCaptureSource*)createScreenCaptureSource:(unsigned int) sourceId sourceType:(ZegoScreenCaptureSourceType) sourceType;
创建屏幕采集源
Declared in ZegoExpressEngine.h

参数

名称类型描述
sourceIdunsigned int指定的屏幕 ID 或窗口 ID。
sourceTypeZegoScreenCaptureSourceType指定的屏幕源类型。

详情

根据提供的源的 ID 和源的类型创建屏幕采集源对象。

  • 业务场景:需要对屏幕或窗口有录制和分享等业务时使用。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 平台差异:仅支持 Windows 和 macOS。
  • 支持版本:3.1.0 及以上。

返回值

屏幕采集源对象,超过最大数量限制后将返回 nil

destroyScreenCaptureSource:

destroyScreenCaptureSource:
- (void)destroyScreenCaptureSource:(ZegoScreenCaptureSource *) source;
销毁屏幕采集源对象
Declared in ZegoExpressEngine.h

参数

名称类型描述
sourceZegoScreenCaptureSource *需要销毁的屏幕采集源对象

详情

销毁 [ZegoScreenCaptureSource] 屏幕采集源对象。

  • 业务场景:不再需要使用屏幕采集功能时,可通过此函数销毁 [createScreenCaptureSource] 函数创建出来的实例对象。
  • 调用时机:当需要销毁屏幕采集源对象时。
  • 平台差异:仅支持 Windows 和 macOS。
  • 支持版本:3.1.0 及以上。
  • 使用限制:销毁后,开发者需要自行释放持有的 [ZegoScreenCaptureSource] 实例对象,并且销毁后也不要再调用此实例对象的函数。

setAppGroupID:

setAppGroupID:
- (void)setAppGroupID:(NSString *)groupID API_AVAILABLE(ios (12.0));
设置 App Group 配置项。
Declared in ZegoExpressEngine.h

参数

名称类型描述
groupIDNSString *主应用和 extension 扩展应用应该归属于同一个 App Group,此处需要传入 AppGroupID。
  • 业务场景:需要使用 iOS 跨进程屏幕共享功能,需要启动 App Group,可以提供更好的性能与稳定性。必须搭配 ZegoReplayKit 扩展类里的 [setupWithAppGroupID:] 使用。
  • 调用时机:[createEngine] 之后,调用 [startScreenCapture] 之前调用。
  • 支持版本:3.3.0 及以上。
  • 使用限制:仅 iOS 平台使用。

startScreenCaptureInApp:

startScreenCaptureInApp:
- (void)startScreenCaptureInApp:(ZegoScreenCaptureConfig *)config API_AVAILABLE(ios (12.0));
开始屏幕采集,仅限 app 应用内录屏。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoScreenCaptureConfig *屏幕采集参数配置。

详情

开始屏幕采集。

  • 调用时机:在调用 [setVideoSource]、[setAudioSource] 函数设置采集源 为 ScreenCapture 后。
  • 支持版本:3.1.0 及以上。
  • 使用限制:仅对 iOS 系统生效。

startScreenCapture:

startScreenCapture:
- (void)startScreenCapture:(ZegoScreenCaptureConfig *)config API_AVAILABLE(ios (12.0));
开始屏幕采集。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoScreenCaptureConfig *屏幕采集参数配置。

详情

开始屏幕采集。

  • 调用时机:在调用 [setVideoSource]、[setAudioSource] 函数设置采集源 为 ScreenCapture 后。
  • 支持版本:3.1.0 及以上。

stopScreenCapture

stopScreenCapture
- (void)stopScreenCapture API_AVAILABLE(ios (12.0));
停止屏幕采集。
Declared in ZegoExpressEngine.h

停止屏幕采集。

  • 支持版本:3.1.0 及以上。

updateScreenCaptureConfig:

updateScreenCaptureConfig:
- (void)updateScreenCaptureConfig:(ZegoScreenCaptureConfig *)config API_AVAILABLE(ios (12.0));
更新屏幕采集参数配置。
Declared in ZegoExpressEngine.h

参数

名称类型描述
configZegoScreenCaptureConfig *屏幕采集参数配置。

详情

更新屏幕采集参数配置。

  • 调用时机:在调用 [startScreenCapture] 开始采集后。
  • 支持版本:3.1.0 及以上。
  • 使用限制:仅对 iOS 系统生效。仅适用于 iOS 12.0 或更高版本。

createAIVoiceChanger

createAIVoiceChanger
- (nullable ZegoAIVoiceChanger *)createAIVoiceChanger;
创建 AI 变声器实例。
Declared in ZegoExpressEngine.h

创建 AI 变声器实例对象。

  • 业务场景:常用于直播、语聊房和 KTV 等场景。
  • 调用时机:在初始化 SDK [createEngine] 之后。
  • 相关接口:用户可以调用 [destroyAIVoiceChanger] 销毁 AI 变声器实例对象。
  • 支持版本:3.10.0 及以上。
  • 使用限制:目前最多支持创建 1 个实例,超过后将返回 nil。

AI 变声器实例。

destroyAIVoiceChanger:

destroyAIVoiceChanger:
- (void)destroyAIVoiceChanger:(ZegoAIVoiceChanger *) aiVoiceChanger;
销毁 AI 变声器实例对象。
Declared in ZegoExpressEngine.h

参数

名称类型描述
aiVoiceChangerZegoAIVoiceChanger *AI 变声器实例对象。

详情

销毁 AI 变声器实例对象。

  • 相关接口:用户可以调用 [createAIVoiceChanger] 创建 AI 变声器实例对象。
  • 支持版本:3.10.0 及以上。

isAIVoiceChangerSupported

isAIVoiceChangerSupported
- (BOOL)isAIVoiceChangerSupported;
检测设备是否支持 AI 变声功能。
Declared in ZegoExpressEngine.h

检测设备是否支持 AI 变声功能。

  • 业务场景:常用于直播、语聊房和 KTV 等场景。
  • 调用时机:在初始化 SDK [createEngine] 之后。
  • 支持版本:3.14.0 及以上。

设备支持运行 AI 变声功能时返回 true,否则返回 false。

createPictureCapturer

createPictureCapturer
- (nullable ZegoPictureCapturer *)createPictureCapturer;
创建图片采集器实例。
Declared in ZegoExpressEngine.h

创建图片采集器实例。

  • 业务场景:常用于推静态图片。
  • 调用时机:在初始化 SDK [createEngine] 之后。
  • 相关接口:用户可以调用 [destroyPictureCapturer] 销毁图片采集器实例。使用 [setVideoSource] 设置图片采集为推流视频源。
  • 支持版本:3.22.0 及以上。
  • 使用限制:无。

图片采集器实例。

destroyPictureCapturer:

destroyPictureCapturer:
- (void)destroyPictureCapturer:(ZegoPictureCapturer *) pictureCapturer;
销毁图片采集器实例。
Declared in ZegoExpressEngine.h

参数

名称类型描述
pictureCapturerZegoPictureCapturer *图片采集器实例。

详情

销毁图片采集器实例。

  • 相关接口:用户可以调用 [createPictureCapturer] 创建图片采集器实例。
  • 支持版本:3.22.0 及以上。

setPlayStreamBufferIntervalRange:streamID:

setPlayStreamBufferIntervalRange:streamID:
deprecated
- (void)setPlayStreamBufferIntervalRange:(NSRange) range streamID:(NSString *) streamID;
【已废弃】设置拉流播放缓存自适应调整的区间范围。
Declared in ZegoExpressEngine.h
名称类型描述
rangeNSRange缓存自适应区间范围。
streamIDNSString *流 ID。
已废弃
此函数在 3.4.0 版本及以上已废弃,请使用 [setPlayStreamBufferIntervalRange:min:max:] 代替。

enableBeautify:

enableBeautify:
deprecated
- (void)enableBeautify:(ZegoBeautifyFeature) featureBitmask;
【已废弃】开/关美颜,为主推流通道设置。此函数在 2.16.0 版本及以上已废弃,请使用 [enableEffectsBeauty] 函数代替。
Declared in ZegoExpressEngine.h

参数

名称类型描述
featureBitmaskZegoBeautifyFeature美颜特性,位掩码格式,可选择同时开启 [ZegoBeautifyFeature] 中的几个特性

详情

当开发者对美颜需求不大时,可使用此功能设置一些非常简单的美颜效果。

  • 调用时机:需要在 [createEngine] 之后调用。
  • 默认值:未调用此函数时,默认不开启美颜功能。
  • 相关接口:开启美颜功能后可调用 [setBeautifyOption] 函数调整美颜参数。
  • 支持版本:1.1.0 及以上。
  • 使用限制:在使用自定义视频采集功能的情况下,由于开发者接管了视频数据的采集,SDK 不再负责视频数据的采集,本函数不再有效。在使用自定义视频前处理功能的情况下也无效。
  • 注意事项:此美颜功能较为简单,可能不符合开发者的预期,建议使用自定义视频前处理功能 [enableCustomVideoProcessing] 或者自定义视频采集功能 [enableCustomVideoCapture] 对接即构 AI 美颜 SDK [ZegoEffects] https://doc-zh.zego.im/article/9556 以获得最佳效果。
已废弃
此函数在 2.16.0 版本及以上已废弃,请使用 [enableEffectsBeauty] 函数代替。

enableBeautify:channel:

enableBeautify:channel:
deprecated
- (void)enableBeautify:(ZegoBeautifyFeature) featureBitmask channel:(ZegoPublishChannel) channel;
【已废弃】开/关美颜,为任意推流通道设置。此函数在 2.16.0 版本及以上已废弃,请使用 [enableEffectsBeauty] 函数代替。
Declared in ZegoExpressEngine.h

参数

名称类型描述
featureBitmaskZegoBeautifyFeature美颜特性,位掩码格式,可选择同时开启 [ZegoBeautifyFeature] 中的几个特性
channelZegoPublishChannel推流通道

详情

当开发者对美颜需求不大时,可使用此功能设置一些非常简单的美颜效果。

  • 调用时机:需要在 [createEngine] 之后调用。
  • 默认值:未调用此函数时,默认不开启美颜功能。
  • 相关接口:开启美颜功能后可调用 [setBeautifyOption] 函数调整美颜参数。
  • 支持版本:1.1.0 及以上。
  • 使用限制:在使用自定义视频采集功能的情况下,由于开发者接管了视频数据的采集,SDK 不再负责视频数据的采集,本函数不再有效。在使用自定义视频前处理功能的情况下也无效。
  • 注意事项:此美颜功能较为简单,可能不符合开发者的预期,建议使用自定义视频前处理功能 [enableCustomVideoProcessing] 或者自定义视频采集功能 [enableCustomVideoCapture] 对接即构 AI 美颜 SDK [ZegoEffects] https://doc-zh.zego.im/article/9556 以获得最佳效果。
已废弃
此函数在 2.16.0 版本及以上已废弃,请使用 [enableEffectsBeauty] 函数代替。

setBeautifyOption:

setBeautifyOption:
deprecated
- (void)setBeautifyOption:(ZegoBeautifyOption *) option;
【已废弃】设置美颜参数。此函数在 2.16.0 版本及以上已废弃,请使用 [setEffectsBeautyParam] 函数代替。
Declared in ZegoExpressEngine.h

参数

名称类型描述
optionZegoBeautifyOption *美颜选项参数。

详情

设置主推流通道美颜参数。

  • 业务场景:通常用于视频通话、直播等场景。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:在使用自定义视频采集功能的情况下,由于开发者接管了视频数据的采集,SDK 不再负责视频数据的采集,调用本函数不生效。在使用自定义视频前处理时,SDK 采集的视频数据会交给业务做进一步处理,调用本函数也不生效。
已废弃
此函数在 2.16.0 版本及以上已废弃,请使用 [setEffectsBeautyParam] 函数代替。

setBeautifyOption:channel:

setBeautifyOption:channel:
deprecated
- (void)setBeautifyOption:(ZegoBeautifyOption *) option channel:(ZegoPublishChannel) channel;
【已废弃】设置美颜参数。此函数在 2.16.0 版本及以上已废弃,请使用 [setEffectsBeautyParam] 函数代替。
Declared in ZegoExpressEngine.h

参数

名称类型描述
optionZegoBeautifyOption *美颜选项参数。
channelZegoPublishChannel推流通道。

详情

设置主推流通道美颜参数。

  • 业务场景:通常用于视频通话、直播等场景。
  • 调用时机:需要在 [createEngine] 之后调用。
  • 支持版本:1.1.0 及以上。
  • 使用限制:无。
  • 注意事项:在使用自定义视频采集功能的情况下,由于开发者接管了视频数据的采集,SDK 不再负责视频数据的采集,调用本函数不生效。在使用自定义视频前处理时,SDK 采集的视频数据会交给业务做进一步处理,调用本函数也不生效。
已废弃
此函数在 2.16.0 版本及以上已废弃,请使用 [setEffectsBeautyParam] 函数代替。

上一篇

zegoexpressdefines

下一篇

zegofacedetectioninfo

当前页

返回到顶部