ZegoLiveRoomApi Class Reference

Inherits from NSObject
Declared in ZegoLiveRoomApi.h

Overview

推流相关功能分类

Other Methods

+ version

ZegoLiveRoom SDK 版本号

+ (NSString *)version

Return Value

版本号

Discussion

开发者使用本 API 获取 SDK 版本号

Declared In

ZegoLiveRoomApi.h

+ version2

版本号2

+ (NSString *)version2

Return Value

版本号2

Declared In

ZegoLiveRoomApi.h

+ setLogHook:

hook sdk 日志

+ (void)setLogHook:(ZegoLogHookBlock)logHookblk

Parameters

logHookblk

设置日志hook

Discussion

1、回调信息为加密信息(需要zego解密工具解密) 2、设置此日志回调之后sdk 将不会在写日志文件 3、调用时机,应该最早时机调用此接口 InitSDK之前

Declared In

ZegoLiveRoomApi.h

+ setUseTestEnv:

是否启用测试环境

+ (void)setUseTestEnv:(bool)useTestEnv

Parameters

useTestEnv

是否启用测试环境,true 启用,false 不启用。默认为 false

Discussion

建议在初始化 SDK 前调用。建议开发者在开发阶段设置为测试环境,使用由 Zego 提供的测试环境。上线前需切换为正式环境运营

Declared In

ZegoLiveRoomApi.h

+ setVerbose:

是否打开调试信息

+ (void)setVerbose:(bool)bOnVerbose

Parameters

bOnVerbose

是否打开调试信息,true 打开,false 不打开。默认为 false

Discussion

建议setLogDir后 initSDK前调用 , 启用后,控制台会输出用户调用信息,并且会在SDK日志目录生成 明文的用户可见的日志文件

Declared In

ZegoLiveRoomApi.h

+ setBusinessType:

设置业务类型

+ (void)setBusinessType:(int)type

Parameters

type

业务类型,取值 0(直播类型)或 2(实时音视频类型)。默认为 0

Discussion

确保在创建接口对象前调用

Declared In

ZegoLiveRoomApi.h

+ uploadLog

上报日志

+ (void)uploadLog

Discussion

上传日志到后台便于分析问题

在初始化 SDK 成功后调用

Declared In

ZegoLiveRoomApi.h

+ setUserID:userName:

设置用户 ID 及用户名

+ (bool)setUserID:(NSString *)userID userName:(NSString *)userName

Parameters

userID

用户 ID,不可为空

userName

用户名,不可为空

Return Value

true 成功,false 失败

Discussion

确保在 loginRoom 前设置成功。userID 和 userName 由业务方自己控制

Declared In

ZegoLiveRoomApi.h

+ setLogSize:

设置SDK日志大小

+ (void)setLogSize:(unsigned int)size

Parameters

size

单个日志大小,单位为字节。取值范围[1 * 1024 * 1024, 100 * 1024 * 1024],推荐 5 * 1024 * 1024 及以上. 当设置为 0 时,不写日志(不推荐,当 SDK 出问题时无法定位原因)

Discussion

在初始化 SDK 之前调用有效

SDK 默认单个日志文件大小为 5M

Declared In

ZegoLiveRoomApi.h

+ setLogDir:size:subFolder:

设置SDK日志存储目录及大小

+ (void)setLogDir:(NSString *)logDir size:(unsigned int)size subFolder:(NSString *)subFolder

Parameters

logDir

日志文件存储路径,如果为空,则存储到默认路径

size

单个日志大小,单位为字节。取值范围[1 * 1024 * 1024, 100 * 1024 * 1024],推荐 5 * 1024 * 1024 及以上. 当设置为 0 时,不写日志(不推荐,当 SDK 出问题时无法定位原因)

subFolder

日志存储子文件夹,当为空时,不创建子文件夹。该文件夹是 logDir 的子目录。

Discussion

在初始化 SDK 之前调用有效

Declared In

ZegoLiveRoomApi.h

+ setLogDir:size:subFolder:count:

设置SDK日志存储目录及大小

+ (void)setLogDir:(NSString *)logDir size:(unsigned int)size subFolder:(NSString *)subFolder count:(unsigned int)count

Parameters

logDir

日志文件存储路径,如果为空,则存储到默认路径

size

单个日志大小,单位为字节。取值范围[1 * 1024 * 1024, 100 * 1024 * 1024],推荐 5 * 1024 * 1024 及以上. 当设置为 0 时,不写日志(不推荐,当 SDK 出问题时无法定位原因)

subFolder

日志存储子文件夹,当为空时,不创建子文件夹。该文件夹是 logDir 的子目录。

count

日志文件个数

Discussion

在初始化 SDK 之前调用有效

Declared In

ZegoLiveRoomApi.h

+ setLocalProxyConfig:enable:

设置本地代理

+ (void)setLocalProxyConfig:(NSArray<ZegoProxyInfo*> *)proxyList enable:(BOOL)enable

Parameters

proxyList

代理信息列表.

enable

是否启用代理.

Discussion

Note: 必须在初始化SDK前调用,中途不支持更改

Declared In

ZegoLiveRoomApi.h

+ setCloudProxyConfig:token:enable:

设置云代理

+ (void)setCloudProxyConfig:(NSArray<ZegoProxyInfo*> *)proxyList token:(NSString *)token enable:(BOOL)enable

Parameters

proxyList

代理信息列表.

token

使用token 鉴权,需要填写,否则可填空(eg. 使用appsign)

enable

是否启用代理.

Discussion

Note: 必须在初始化SDK前调用,中途不支持更改

Declared In

ZegoLiveRoomApi.h

+ setRunLoopObserveDelegate:

设置observe sdk主线程回调

+ (void)setRunLoopObserveDelegate:(ZegoRunLoopObserveBlock)blk

Parameters

blk

回调

Discussion

回调值信息 taskId:sdk任务id type: 任务类型 taskDispatchTime: 任务调度消耗时间 单位ms taskRunTime: 任务执行耗时 单位ms taskTotalTime: 任务总耗时 单位ms 一般情况只需关注此时间即可

建议每次 初始化SDK前调用, SDK 被反初始化会清除此回调值

Declared In

ZegoLiveRoomApi.h

+ setRoomMode:

设置房间模式

+ (bool)setRoomMode:(ZegoAPIRoomMode)mode

Parameters

mode

房间模式, 详见 ZegoAPIRoomMode 定义

Return Value

true 成功, false 失败

Discussion

默认是单房间模式

必须在初始化SDK前调用。

如果需要开启多房间模式,请与即构技术支持联系配置服务端支持。

Declared In

ZegoLiveRoomApi.h

+ setGeoFence:toArea:

设置地理围栏

+ (bool)setGeoFence:(ZegoAPIGeoFenceType)type toArea:(NSArray<NSNumber*> *)area

Parameters

type

设置指定区域是允许还是排除

area

区域列表,参考 ZegoAPIGeoFenceAreaCode

Return Value

true: 调用成功; false: 调用失败

Discussion

Note: note 必须在初始化SDK之前设置

Declared In

ZegoLiveRoomApi.h

– initWithAppID:appSignature:

初始化 SDK

- (instancetype)initWithAppID:(unsigned int)appID appSignature:(NSData *)appSignature

Parameters

appID

Zego 派发的数字 ID, 开发者的唯一标识

appSignature

Zego 派发的签名, 用来校验对应 appID 的合法性

Return Value

SDK 实例,nil 表示初始化失败

Discussion

初始化 SDK 时调用。初始化 SDK 失败可能导致 SDK 功能异常

Declared In

ZegoLiveRoomApi.h

– initWithAppID:appSignature:completionBlock:

初始化 SDK

- (instancetype)initWithAppID:(unsigned int)appID appSignature:(NSData *)appSignature completionBlock:(ZegoInitSDKCompletionBlock)blk

Parameters

appID

Zego 派发的数字 ID, 开发者的唯一标识

appSignature

Zego 派发的签名, 用来校验对应 appID 的合法性

blk

回调 block

Return Value

SDK 实例,nil 表示初始化失败

Discussion

初始化 SDK 时调用。初始化 SDK 失败可能导致 SDK 功能异常

Declared In

ZegoLiveRoomApi.h

– setRoomDelegate:

设置 room 代理对象

- (bool)setRoomDelegate:(id<ZegoRoomDelegate>)roomDelegate

Parameters

roomDelegate

遵循 ZegoRoomDelegate 协议的代理对象

Return Value

true 成功,false 失败

Discussion

使用 room 功能,初始化相关视图控制器时需要设置代理对象。未设置代理对象,或对象设置错误,可能导致无法正常收到相关回调

Declared In

ZegoLiveRoomApi.h

– setRoomConfig:userStateUpdate:

设置房间配置信息

- (bool)setRoomConfig:(bool)audienceCreateRoom userStateUpdate:(bool)userStateUpdate

Parameters

audienceCreateRoom

观众是否可以创建房间。true 可以,false 不可以。默认 true

userStateUpdate

用户状态(用户进入、退出房间)是否广播。true 广播,false 不广播。默认 false

Return Value

true 成功,false 失败

Discussion

在 userStateUpdate 为 true 的情况下,用户进入、退出房间会触发 [ZegoLiveRoomApi (IM) -onUserUpdate:updateType:] 回调

在登录房间前调用有效,退出房间后失效

userStateUpdate为房间属性而非用户属性,设置的是该房间内是否会进行用户状态的广播。如果需要在房间内用户状态改变时,其他用户能收到通知,请为所有用户设置为true;反之,设置为false。设置为true后,方可从OnUserUpdate回调收到用户状态变更通知

不支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启),多房间模式下请使用 [ZegoLiveRoomApi setRoomConfig:userStateUpdate:room:],指定房间 ID。

Declared In

ZegoLiveRoomApi.h

– setRoomConfig:userStateUpdate:room:

设置房间配置信息

- (bool)setRoomConfig:(bool)audienceCreateRoom userStateUpdate:(bool)userStateUpdate room:(NSString *)roomID

Parameters

audienceCreateRoom

观众是否可以创建房间。true 可以,false 不可以。默认 true

userStateUpdate

用户状态(用户进入、退出房间)是否广播。true 广播,false 不广播。默认 false

roomID

房间 ID

Return Value

true 成功,false 失败

Discussion

在 userStateUpdate 为 true 的情况下,用户进入、退出房间会触发 [ZegoLiveRoomApi (IM) -onUserUpdate:updateType:] 回调

在登录房间前调用有效,退出房间后失效

userStateUpdate为房间属性而非用户属性,设置的是该房间内是否会进行用户状态的广播。如果需要在房间内用户状态改变时,其他用户能收到通知,请为所有用户设置为true;反之,设置为false。设置为true后,方可从OnUserUpdate回调收到用户状态变更通知

支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。

Declared In

ZegoLiveRoomApi.h

– setCustomToken:

设置自定义token信息

- (bool)setCustomToken:(NSString *)thirdPartyToken

Parameters

thirdPartyToken

第三方传入的token

Return Value

true 成功,false 失败

Discussion

Warning: Deprecated, 请使用 [ZegoLiveRoomApi setToken:room:] 代替

使用此方法验证登录及推流时用户的合法性,登录房间前调用,token的生成规则请联系即构。若不需要验证用户合法性,不需要调用此函数。

在登录房间前调用有效,支持在登录房间后重新设置,退出房间后失效

Declared In

ZegoLiveRoomApi.h

– setToken:room:

设置鉴权 token 信息

- (bool)setToken:(NSString *)token room:(NSString *)roomID

Parameters

token

鉴权 token

roomID

房间 ID

Return Value

true 成功,false 失败

Discussion

使用此方法验证登录及推流时用户的合法性,登录房间前调用,token的生成规则请联系即构。若不需要验证用户合法性,不需要调用此函数。

在登录房间前调用有效,支持在登录房间后重新设置,退出房间后失效

Declared In

ZegoLiveRoomApi.h

– setRoomMaxUserCount:

设置房间最大在线人数

- (bool)setRoomMaxUserCount:(unsigned int)userCount

Parameters

userCount

最大人数

Return Value

true 成功,false 失败

Discussion

在登录房间前调用有效,退出房间后失效

不支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启),多房间模式下请使用 [ZegoLiveRoomApi setRoomMaxUserCount:room:],指定房间 ID。

Declared In

ZegoLiveRoomApi.h

– setRoomMaxUserCount:room:

设置房间最大在线人数

- (bool)setRoomMaxUserCount:(unsigned int)userCount room:(NSString *)roomID

Parameters

userCount

最大人数

roomID

房间 ID

Return Value

true 成功,false 失败

Discussion

在登录房间前调用有效,退出房间后失效

支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。

Declared In

ZegoLiveRoomApi.h

– loginRoom:role:withCompletionBlock:

登录房间

- (bool)loginRoom:(NSString *)roomID role:(int)role withCompletionBlock:(ZegoLoginCompletionBlock)blk

Parameters

roomID

房间 ID,长度不可超过 255 byte

role

成员角色,可取值为 ZEGO_ANCHOR(主播),ZEGO_AUDIENCE(观众),详见 ZegoRole 定义

blk

回调 block

Return Value

true 成功,false 失败

Discussion

登录房间成功,才能开始直播。观众登录房间成功后,会在 blk 中返回当前房间的流信息

Declared In

ZegoLiveRoomApi.h

– loginRoom:roomName:role:withCompletionBlock:

登录房间

- (bool)loginRoom:(NSString *)roomID roomName:(NSString *)roomName role:(int)role withCompletionBlock:(ZegoLoginCompletionBlock)blk

Parameters

roomID

房间 ID,长度不可超过 255 byte

roomName

房间名称,可选,长度不可超过 255 byte

role

成员角色,可取值为 ZEGO_ANCHOR(主播),ZEGO_AUDIENCE(观众),详见 ZegoRole 定义

blk

回调 block

Return Value

true 成功,false 失败

Discussion

登录房间成功,才能开始直播。观众登录房间成功后,会在 blk 中返回当前房间的流信息

Declared In

ZegoLiveRoomApi.h

– switchRoom:roomName:role:withCompletionBlock:

切换房间

- (bool)switchRoom:(NSString *)roomID roomName:(NSString *)roomName role:(int)role withCompletionBlock:(ZegoLoginCompletionBlock)blk

Parameters

roomID

房间 ID,长度不可超过 255 byte

roomName

房间名称,可选,长度不可超过 255 byte

role

成员角色,可取值为 ZEGO_ANCHOR(主播),ZEGO_AUDIENCE(观众),详见 ZegoRole 定义

blk

回调 block

Return Value

true 成功,false 失败

Discussion

切换房间成功,才能开始直播。观众登录房间成功后,会在 blk 中返回当前房间的流信息

不支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。

调用成功,会停止所有推拉流。

Declared In

ZegoLiveRoomApi.h

– switchRoom:toRoom:roomName:role:withCompletionBlock:

切换房间

- (bool)switchRoom:(NSString *)fromRoomID toRoom:(NSString *)toRoomID roomName:(NSString *)roomName role:(int)role withCompletionBlock:(ZegoLoginCompletionBlock)blk

Parameters

fromRoomID

房间 ID,长度不可超过 255 byte

toRoomID

房间 ID,长度不可超过 255 byte

roomName

房间名称,可选,长度不可超过 255 byte

role

成员角色,可取值为 ZEGO_ANCHOR(主播),ZEGO_AUDIENCE(观众),详见 ZegoRole 定义

blk

回调 block

Return Value

true 成功,false 失败

Discussion

切换房间成功,才能开始直播。观众登录房间成功后,会在 blk 中返回当前房间的流信息

同时支持单房间和多房间模式。

调用成功,会停止房间 fromRoomID 的所有推拉流。

Declared In

ZegoLiveRoomApi.h

– logoutRoom

退出房间

- (bool)logoutRoom

Return Value

true 成功,false 失败

Discussion

连麦情况下,要 stop 所有的 stream 后,才能执行 logoutRoom。

不支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。多房间模式下请使用 [ZegoLiveRoomApi logoutRoom:] 指定房间 ID。

Declared In

ZegoLiveRoomApi.h

– logoutRoom:

退出房间

- (bool)logoutRoom:(NSString *)roomID

Parameters

roomID

房间 ID

Return Value

true 成功,false 失败

Discussion

连麦情况下,要 stop 所有的 stream 后,才能执行 logoutRoom。

支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。

Declared In

ZegoLiveRoomApi.h

– sendCustomCommand:content:completion:

发送自定义信令

- (bool)sendCustomCommand:(NSArray<ZegoUser*> *)memberList content:(NSString *)content completion:(ZegoCustomCommandBlock)block

Parameters

memberList

发送对象列表。如果不指定接受人,将不会给房间内的人发送消息,即消息发送失败

content

消息内容。长度不超过 1024 字节

block

消息发送结果

Return Value

发起请求是否成功

Discussion

  • 该 API 可以向指定列表内的用户发送自定义信令,信令内容由用户自定义。发送结果通过 block 回调。
  • 用户可通过代理 [ZegoRoomDelegate -onReceiveCustomCommand:userName:content:roomID:] 方法收到信令。
  • 信令不能保证 100% 可达。
  • 不支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。多房间模式下请使用 [ZegoLiveRoomApi sendCustomCommand:content:room:completion:] 指定房间 ID。

Declared In

ZegoLiveRoomApi.h

– sendCustomCommand:content:room:completion:

发送自定义信令

- (bool)sendCustomCommand:(NSArray<ZegoUser*> *)memberList content:(NSString *)content room:(NSString *)roomID completion:(ZegoCustomCommandBlock)block

Parameters

memberList

发送对象列表。如果不指定接受人,将不会给房间内的人发送消息,即消息发送失败

content

消息内容。长度不超过 1024 字节

roomID

房间 ID

block

消息发送结果

Return Value

发起请求是否成功

Discussion

  • 该 API 可以向指定列表内的用户发送自定义信令,信令内容由用户自定义。发送结果通过 block 回调。
  • 用户可通过代理 [ZegoRoomDelegate -onReceiveCustomCommand:userName:content:roomID:] 方法收到信令。
  • 信令不能保证 100% 可达。
  • 支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。必须指定房间 ID

Declared In

ZegoLiveRoomApi.h

– setLiveEventDelegate:

设置直播事件代理对象

- (bool)setLiveEventDelegate:(id<ZegoLiveEventDelegate>)liveEventDelegate

Parameters

liveEventDelegate

遵循 ZegoLiveEventDelegate 协议的代理对象,SDK 内部会弱引用该对象。

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 注意:该代理用于监听直播事件回调,设置代理对象后在 [ZegoLiveEventDelegate -zego_onLiveEvent:info:] 中获取直播事件。

Declared In

ZegoLiveRoomApi.h

– setDeviceEventDelegate:

设置音视频设备错误回调代理对象

- (bool)setDeviceEventDelegate:(id<ZegoDeviceEventDelegate>)deviceEventDelegate

Parameters

deviceEventDelegate

遵循 ZegoDeviceEventDelegate 协议的代理对象

Return Value

true 成功,false 失败

Discussion

开发者获取音视频设备错误,需要先设置此代理对象。未设置代理对象,或对象设置错误,可能导致无法正常收到相关回调

Declared In

ZegoLiveRoomApi.h

– enableMicDevice:

设置是否允许SDK使用麦克风设备

- (BOOL)enableMicDevice:(BOOL)enable

Parameters

enable

YES 表示允许使用麦克风,NO 表示禁止使用麦克风,此时如果SDK在占用麦克风则会立即释放。

Return Value

YES 调用成功,NO 调用失败

Discussion

  • 调用时机为引擎创建后的任意时刻。
  • 接口由于涉及对设备的操作,极为耗时,不建议随便调用,只在真正需要让出麦克风给其他应用的时候才调用。

Declared In

ZegoLiveRoomApi.h

– pauseModule:

暂停指定模块

- (void)pauseModule:(int)moduleType

Parameters

moduleType

模块类型, 参考 ZegoAPIModuleType。

Discussion

  • 用于需要暂停指定模块的场合,例如来电时暂停音频模块。

  • 注意:

  • 1.可以在初始化后任意时间调用。
  • 2.暂停指定模块后,注意在合适时机下调用 [ZegoLiveRoomApi -resumeModule:] 恢复模块。

Declared In

ZegoLiveRoomApi.h

– resumeModule:

恢复指定模块

- (void)resumeModule:(int)moduleType

Parameters

moduleType

模块类型, 参考 ZegoAPIModuleType。

Discussion

  • 用于暂停模块后需要恢复模块的场合,例如来电结束后恢复音频模块。

  • 注意:可以在初始化后任意时间调用。

Declared In

ZegoLiveRoomApi.h

– setAudioRouteDelegate:

设置音频路由回调

- (bool)setAudioRouteDelegate:(id<ZegoAudioRouteDelegate>)delegate

Parameters

delegate

回调

Declared In

ZegoLiveRoomApi.h

+ getEngineState

获取当前引擎状态

+ (ZegoAPIEngineState)getEngineState

Return Value

详见 ZegoAPIEngineState

Declared In

ZegoLiveRoomApi.h

+ setVideoDevice:

设置视频设备

+ (bool)setVideoDevice:(NSString *)deviceId

Parameters

deviceId

设备 Id

Return Value

true 成功,false 失败

Discussion

本接口用于 Mac PC 端的业务开发

Declared In

ZegoLiveRoomApi.h

+ setAudioDevice:type:

设置音频设备

+ (bool)setAudioDevice:(NSString *)deviceId type:(ZegoAPIAudioDeviceType)deviceType

Parameters

deviceId

设备 Id

deviceType

设备类型

Return Value

true 成功,false 失败

Discussion

本接口用于 Mac PC 端的业务开发

Declared In

ZegoLiveRoomApi.h

– getAudioDeviceList:

获取音频设备列表

- (NSArray<ZegoAPIDeviceInfo*> *)getAudioDeviceList:(ZegoAPIAudioDeviceType)deviceType

Parameters

deviceType

设备类型

Return Value

设备信息列表

Declared In

ZegoLiveRoomApi.h

– getVideoDevCapabilityList:

获取视频设备支持分辨率列表 mac平台需要在initsdk 回调后方可调用

- (NSArray<ZegoAPIDeviceVideoCapabilityInfo*> *)getVideoDevCapabilityList:(NSString *)deviceId

Parameters

deviceId

设备id

Return Value

设备支持分辨率列表

Declared In

ZegoLiveRoomApi.h

– getVideoDeviceList

获取视频设备列表

- (NSArray<ZegoAPIDeviceInfo*> *)getVideoDeviceList

Return Value

设备信息列表

Declared In

ZegoLiveRoomApi.h

– enableMixSystemPlayout:

系统声卡声音采集开关,开启会将第三方播放器的声音混入推流中的声音。 单独开启此功能不会将 sdk播放的声音如:拉流的声音和媒体播放器的声音混入 调用时机为initSDK后调用,可以在推流过程中更改设置

- (void)enableMixSystemPlayout:(bool)enable

Parameters

enable

是否打开

Declared In

ZegoLiveRoomApi.h

– setSystemPlayoutVolumeBeforeMixing:

设置系统声卡采集的音量

- (bool)setSystemPlayoutVolumeBeforeMixing:(int)volume

Parameters

volume

音量, 有效范围[0, 200], 默认为 100

Return Value

true 表示设置成功, false 表示失败

Discussion

Note: 在 SDK 生命周期内有效

Declared In

ZegoLiveRoomApi.h

– getMicDeviceVolume:

获取麦克风音量

- (int)getMicDeviceVolume:(NSString *)deviceId

Parameters

deviceId

设备ID

Return Value

-1: 获取失败 0 ~100 麦克风音量

Discussion

切换麦克风后需要重新获取麦克风音量

Declared In

ZegoLiveRoomApi.h

– setMicDevice:volume:

设置麦克风音量

- (void)setMicDevice:(NSString *)deviceId volume:(int)volume

Parameters

deviceId

设备ID

volume

音量 0 ~ 100

Declared In

ZegoLiveRoomApi.h

– getSpeakerDeviceVolume:

获取扬声器音量

- (int)getSpeakerDeviceVolume:(NSString *)deviceId

Parameters

deviceId

设备ID

Return Value

-1: 获取失败 0 ~100 音量

Declared In

ZegoLiveRoomApi.h

– setSpeakerDevice:volume:

设置扬声器音量

- (void)setSpeakerDevice:(NSString *)deviceId volume:(int)volume

Parameters

deviceId

设备ID

volume

音量 0 ~ 100

Declared In

ZegoLiveRoomApi.h

– getSpeakerSimpleVolume:

获取app中扬声器音量

- (int)getSpeakerSimpleVolume:(NSString *)deviceId

Parameters

deviceId

设备ID

Return Value

-1: 获取失败 0 ~100 音量

Declared In

ZegoLiveRoomApi.h

– setSpeaker:simpleVolume:

设置app中扬声器音量

- (void)setSpeaker:(NSString *)deviceId simpleVolume:(int)volume

Parameters

deviceId

设备ID

volume

音量 0 ~ 100

Declared In

ZegoLiveRoomApi.h

– getSpeakerDeviceMute:

获取扬声器是否静音

- (bool)getSpeakerDeviceMute:(NSString *)deviceId

Parameters

deviceId

设备ID

Return Value

true 静音 false 非静音

Declared In

ZegoLiveRoomApi.h

– setSpeakerDevice:mute:

设置扬声器静音

- (void)setSpeakerDevice:(NSString *)deviceId mute:(bool)mute

Parameters

deviceId

设备ID

mute

是否静音

Declared In

ZegoLiveRoomApi.h

– getMicDeviceMute:

获取麦克风是否静音

- (bool)getMicDeviceMute:(NSString *)deviceId

Parameters

deviceId

设备ID

Return Value

true 静音 false 非静音

Declared In

ZegoLiveRoomApi.h

– setMicDevice:mute:

设置麦克风静音

- (void)setMicDevice:(NSString *)deviceId mute:(bool)mute

Parameters

deviceId

设备ID

mute

是否静音

Declared In

ZegoLiveRoomApi.h

– getSpeakerSimpleMute:

获取app中扬声器是否静音

- (bool)getSpeakerSimpleMute:(NSString *)deviceId

Parameters

deviceId

设备ID

Return Value

true 静音 false 非静音

Declared In

ZegoLiveRoomApi.h

– setSpeaker:simpleMute:

设置app中扬声器是否静音

- (void)setSpeaker:(NSString *)deviceId simpleMute:(bool)mute

Parameters

deviceId

设备ID

mute

是否静音

Declared In

ZegoLiveRoomApi.h

– getDefaultVideoDeviceId

获取默认的视频设备

- (NSString *)getDefaultVideoDeviceId

Return Value

deviceId

Declared In

ZegoLiveRoomApi.h

– getDefaultAudioDeviceId:

获取默认的音频设备

- (NSString *)getDefaultAudioDeviceId:(ZegoAPIAudioDeviceType)deviceType

Parameters

deviceType

音频类型

Return Value

deviceId

Declared In

ZegoLiveRoomApi.h

– setAudioVolumeNotify:type:

监听设备的音量变化

- (bool)setAudioVolumeNotify:(NSString *)deviceId type:(ZegoAPIAudioDeviceType)deviceType

Parameters

deviceId

设备ID

deviceType

设备类型

Return Value

设置是否成功

Discussion

设置后如果有音量变化(包括app音量)通过ZegoDeviceEventDelegate::zego_onDevice:error:回调

Declared In

ZegoLiveRoomApi.h

– stopAudioVolumeNotify:type:

停止监听设备的音量变化

- (bool)stopAudioVolumeNotify:(NSString *)deviceId type:(ZegoAPIAudioDeviceType)deviceType

Parameters

deviceId

设备ID

deviceType

设备类型

Return Value

设置是否成功

Declared In

ZegoLiveRoomApi.h

– getCurrentAudioDevice:

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

- (ZegoAPIDeviceInfo *)getCurrentAudioDevice:(ZegoAPIAudioDeviceType)deviceType

Parameters

deviceType

音频类型

Return Value

音频设备信息

Declared In

ZegoLiveRoomApi.h

– setAVEngineDelegate:

设置 AVEngine 代理对象

- (bool)setAVEngineDelegate:(id<ZegoAVEngineDelegate>)avEngineDelegate

Return Value

true 成功, false 失败

Declared In

ZegoLiveRoomApi.h

+ setConfig:

设置配置信息,如果没有特殊说明,必须确保在 InitSDK 前调用

+ (void)setConfig:(NSString *)config

Parameters

config

配置信息,如"keep_audio_session_active=true", 等号后面值的类型要看下面每一项的定义

Discussion

具体配置信息请咨询技术支持

“prefer_play_ultra_source”, int value(1/0), default: 0. 可在 InitSDK 之后,拉流之前调用

“keep_audio_session_active”, bool value, default: false. if set true, app need to set the session inactive yourself

“enforce_audio_loopback_in_sync”, bool value, default: false. enforce audio loopback in synchronous method

“audio_session_mix_with_others”, bool value, default: true. set AVAudioSessionCategoryOptionMixWithOthers

“support_general_mode_below_ios9”, bool value, default: false. support general mode below ios 9.0

“room_retry_time”, uint32 value, default:300S,设置房间异常后自动恢复最大重试时间,SDK尽最大努力恢复,单位为S,SDK默认为300s,设置为0时不重试

“av_retry_time”, uint32 value, default:300S,设置推拉流异常后自动恢复最大重试时间,SDK尽最大努力恢复,单位为S,SDK默认为300s,设置为0时不重试

“play_clear_last_frame”, bool value, default false. 停止拉流时,是否清除最后一帧内容

“preview_clear_last_frame”, bool value, default false. 停止预览时,是否清除最后一帧内容。注意:必须停止预览且setPreviewView设置为空,此配置才能生效。否则,停止预览后,播放控件仍会保留最后一帧

“vcap_external_handle_rotation”, bool value, default true, 表示在推流端处理旋转;设置为 vcap_external_handle_rotation=false 时,会把旋转值传到拉流端(仅为 UDP 时有效)。这个配置目前只对外部采集的内存模式和 CVPixelBuffer 模式生效

“audio_jitter_break_threshold_ms”, uint32 value, default:200ms,定义音频卡顿时长,当音频卡顿时长超过该值时,认为存在卡顿,单位为ms,SDK默认为200ms,取值范围[10,2000]

“video_jitter_break_threshold_ms”, uint32 value, default:500ms,定义视频卡顿时长,当视频卡顿时长超过该值时,认为存在卡顿,单位为ms,SDK默认为500ms,取值范围[500,2000]

“transform_http_to_https_on_init”, bool value, default false,控制是否在initSDK时使用https替代http

Declared In

ZegoLiveRoomApi.h

+ setExperimentalAPICallback:

设置试验性API回调

+ (void)setExperimentalAPICallback:(ZegoExperimentalAPIBlock)blk

Parameters

blk

回调

Declared In

ZegoLiveRoomApi.h

+ callExperimentalAPI:

试验性API

+ (int)callExperimentalAPI:(NSString *)params

Parameters

params

具体信息请咨询技术支持

Return Value

0 成功, 否则失败

Declared In

ZegoLiveRoomApi.h

– setLogInfoDelegate:

设置 LogInfo 代理对象

- (bool)setLogInfoDelegate:(id<ZegoLogInfoDelegate>)delegate

Parameters

delegate

代理对象

Return Value

true 成功, false 失败

Declared In

ZegoLiveRoomApi.h

– setNetTypeDelegate:

设置网络类型回调

- (bool)setNetTypeDelegate:(id<ZegoNetTypeDelegate>)delegate

Parameters

delegate

代理对象

Declared In

ZegoLiveRoomApi.h

– sendRealtimeSequentialData:channelIndex:

发送通过流传输的实时有序数据

- (int)sendRealtimeSequentialData:(NSData *)data channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

data

数据,不超过 4096 字节

index

推流通道号,参见 ZegoAPIPublishChannelIndex

Return Value

大于 0 表示调用 seq,-1 表示失败 @attention 必须在 index 通道推流成功后,才可以发送,否则会被丢弃。 @attention 发送频率不超过每秒 200 次。 @attention 接收方通过设置 setRealtimeSequentialDataDelegate 获取。

Declared In

ZegoLiveRoomApi.h

– setRealtimeSequentialDataDelegate:

设置实时有序数据回调

- (void)setRealtimeSequentialDataDelegate:(id<ZegoRealtimeSequentialDataDelegate>)delegate

Parameters

delegate

回调接口,详见 ZegoRealtimeSequentialDataDelegate 类。

Declared In

ZegoLiveRoomApi.h

– setDumpDataDelegate:

设置转储数据的回调

- (bool)setDumpDataDelegate:(id<ZegoDumpDataDelegate>)delegate

Parameters

deletgate

回调接口,详见 ZegoDumpDataDelegate。

Declared In

ZegoLiveRoomApi.h

– startDumpData:

开启转储数据

- (void)startDumpData:(ZegoAPIDumpDataConfig *)config

Parameters

config

转储数据配置

Discussion

Note: 会通过 [onStartDumpData] 回调收到开启转储数据的结果

Declared In

ZegoLiveRoomApi.h

– stopDumpData

停止转储数据

- (void)stopDumpData

Discussion

Note: 会通过 [onStopDumpData] 回调收到停止转储数据的结果

Declared In

ZegoLiveRoomApi.h

– uploadDumpData

上传转储数据到 ZEGO 服务端

- (void)uploadDumpData

Discussion

Note: 会通过 [onUploadDumpData] 回调收到上传转储数据的结果

Declared In

ZegoLiveRoomApi.h

– removeDumpData

取消转储数据

- (void)removeDumpData

Declared In

ZegoLiveRoomApi.h

RangeAudio Methods

– setRangeAudioDelegate:

设置范围语音代理对象

- (bool)setRangeAudioDelegate:(id<ZegoRangeAudioDelegate> _Nullable)rangeAudioDelegate

Parameters

rangeAudioDelegate

遵循 ZegoRangeAudioDelegate 协议的代理对象。

Return Value

设置结果。true 成功,false 失败。

Discussion

  • 注意:
  • 1.在 init 之前设置。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– initRangeAudio

初始化范围语音。

- (bool)initRangeAudio

Return Value

true 成功,false 失败。

Discussion

  • 注意:
  • 1.在 InitSDK 之后调用才有效。
  • 2.不支持多房间 SDK。与 unInit 配对调用。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– unInitRangeAudio

反初始化范围语音。

- (void)unInitRangeAudio

Discussion

  • 注意:
  • 1.在 init 之后调用。
  • 2.与InitRangeAudio 配对调用。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– setRangeAudioMode:

设置小队模式。

- (void)setRangeAudioMode:(ZegoRangeAudioMode)mode

Parameters

mode

详见 ZegoRangeAudioMode 。

Discussion

  • 如设置 ZEGO_RANGE_AUDIO_MODE_WORLD 则会听到自己小队内和房间内其它用户模式为 ZEGO_RANGE_AUDIO_MODE_WORLD ,且在距离我音频接收范围内的语音。
  • 如设置 ZEGO_RANGE_AUDIO_MODE_TEAM 则只能听到与自己同一小队的语音。
  • 默认值 : ZEGO_RANGE_AUDIO_MODE_WORLD

  • 注意:

  • 1.在 init 之后,unInit 之前调用,可随时变更。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– setRangeAudioTeamID:

设置小队ID 。

- (void)setRangeAudioTeamID:(NSString *_Nonnull)teamID

Parameters

teamID

小队ID 。

Discussion

  • 设置小队ID 设置后,将能听到与房间内的其他用户属于同一小队下的声音, 且不会随距离方向产生变化。

  • 注意:

  • 1.在 init 之后,unInit 之前调用,可随时变更。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– setAudioRecvRange:

设置音频的接收范围。

- (void)setAudioRecvRange:(float)range

Parameters

range

接受范围。

Discussion

  • 设置范围后,在开启3D音效情况下,声音将会随距离衰减,直至超出设置范围,则不再有声音。
  • 小队内的语音,将不会受到此值的限制。

  • 注意:

  • 1.在 init 之后,unInit 之前调用,可随时变更。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– setAudioRecvRangeWithParam:

设置音频的接收范围。

- (int)setAudioRecvRangeWithParam:(ZegoReceiveRangeParam *_Nonnull)param

Parameters

param

接收范围配置。

Return Value

0:成功,其他:失败,见具体错误码

Discussion

  • 设置范围后,在开启3D音效情况下,声音将会随距离衰减,直至超出设置范围,则不再有声音。
  • 小队内的语音,将不会受到此值的限制。

  • 注意:

  • 1.在 init 之后,unInit 之前调用,可随时变更。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– enableRangeAudioMicrophone:

开启麦克风。

- (void)enableRangeAudioMicrophone:(bool)enable

Parameters

enable

true 开启,false 关闭。

Discussion

  • 开启麦克风后,SDK将会自动使用主通道推音频流。

  • 注意:

  • 1.在 init 之后,unInit 之前调用。
  • 2.ZegoRangeAudioDelegate 中的 OnRangAudioMicrophone 回调查看开启麦克风结果。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– enableRangeAudioSpeaker:

开启扬声器。

- (void)enableRangeAudioSpeaker:(bool)enable

Parameters

enable

true 开启,false 关闭。

Discussion

  • 开启扬声器后,SDK将会自动使用主通道推音频流。
  • 若当前是仅小队模式,将只会拉取同一小队的音频流,停止非小队的音频流。
  • 若当前是世界模式, 将优先拉取同一小队的语音,非小队成员,则按距离我最近的的开始拉取。

  • 注意:

  • 1.在 init 之后,unInit 之前调用。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– enableSpatializer:

开启 3D 空间音效。

- (void)enableSpatializer:(bool)enable

Parameters

enable

true 开启,false 关闭。

Discussion

  • 开启后,在房间内非小队成员的音频,会随离我的距离,和方向产生空间变化。

  • 注意:

  • 1.在 init 之后,unInit 之前调用。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– updateAudioSource:position:

更新房间内的其它用户(音频源)位置。

- (void)updateAudioSource:(NSString *_Nonnull)userID position:(float [ _Nonnull 3 ])position

Parameters

userID

房间内其它用户的 userid。

position

用户的三维空间坐标 顺序为前,右,上。

Discussion

  • 注意:
  • 1.在 init 之后,unInit 之前调用。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– updateSelfPosition:axisForward:axisRight:axisUp:

更新自己的位置。

- (void)updateSelfPosition:(float [ _Nonnull 3 ])position axisForward:(float [ _Nonnull 3 ])axisForward axisRight:(float [ _Nonnull 3 ])axisRight axisUp:(float [ _Nonnull 3 ])axisUp

Parameters

position

自己的三维空间坐标,顺序为前,右,上。

axisForward

前朝向的单位向量。

axisRight

右朝向的单位向量。

axisUp

上朝向的单位向量。

Discussion

  • 注意:
  • 1.在 init 之后,unInit 之前调用。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– muteRangeAudioUser:mute:

是否可接收指定用户音频数据。

- (void)muteRangeAudioUser:(NSString *_Nonnull)userID mute:(bool)mute

Parameters

userID

指定用户 ID,设置是否接受该用户的音频数据,默认接收。

mute

true 表示不接收,false表示接收。

Discussion

  • 注意:
  • 1.在 init 之后,unInit 之前调用。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– setPositionUpdateFrequency:

设置范围语音位置更新频率。

- (void)setPositionUpdateFrequency:(int)frequency

Parameters

frequency

单位ms 最小为15ms 默认100ms。 @attention 调用该接口后,SDK内部将已 frequency 为时间间隔, 定期更新UpdateSelfPosition 和UpdateAudioSource 设置的位置值。

Discussion

  • 注意:
  • 1.在 init 之后,unInit 之前调用。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– setRangeAudioVolume:

设置范围语音音量。

- (void)setRangeAudioVolume:(int)volume

Parameters

volume

音量 默认100。[0,200].

Discussion

  • 注意:
  • 1.在 init 之后,unInit 之前调用。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– updateStreamVocalRange:vocalRange:

设置流的发声范围, 注意该流为调用StartPlayStream自定义的流。

- (void)updateStreamVocalRange:(NSString *_Nonnull)streamID vocalRange:(float)vocalRange

Parameters

streamID

流id。

vocalRange

发声范围。

Discussion

  • 注意:
  • 1.在 init 之后,且StartPlayStream 之后 。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– updateStreamVocalRangeWithParam:param:

设置流的发声范围, 注意该流为调用StartPlayStream自定义的流。

- (int)updateStreamVocalRangeWithParam:(NSString *_Nonnull)streamID param:(ZegoVocalRangeParam *_Nonnull)param

Parameters

streamID

流id。

param

流发声范围配置。

Return Value

0:成功,其他:失败,见具体错误码

Discussion

  • 注意:
  • 1.在 init 之后,且StartPlayStream 之后 。

Declared In

ZegoLiveRoomApi-RangeAudio.h

– updateStreamPosition:position:

设置流的位置, 注意该流为调用StartPlayStream自定义的流。

- (void)updateStreamPosition:(NSString *_Nonnull)streamID position:(float [ _Nonnull 3 ])position

Parameters

streamID

流id。

position

用户的三维空间坐标 顺序为前,右,上。

Discussion

  • 注意:
  • 1.在 init 之后,且StartPlayStream 之后 。

Declared In

ZegoLiveRoomApi-RangeAudio.h

DuoPublisher Methods

– setPreviewView:channelIndex:

设置本地预览视图

- (bool)setPreviewView:(ZEGOView *)view channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

view

用于渲染本地预览视频的视图

index

推流 channel Index

Return Value

设置结果。true 成功,false 失败

Discussion

  • 注意:
  • 1.建议在调用 startPreview: 开启预览前,调用该 API 设置本地预览视图,才能在视图上预览采集的视频。
  • 2.建议本地预览结束后,调用该 API 设置预览视图为 nil。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setPreviewView:alphaBlend:channelIndex:

设置本地预览视图

- (bool)setPreviewView:(ZEGOView *)view alphaBlend:(bool)alphaBlend channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

view

用于渲染本地预览视频的视图

index

推流 channel Index

Return Value

设置结果。true 成功,false 失败

Discussion

  • 注意:
  • 1.建议在调用 startPreview: 开启预览前,调用该 API 设置本地预览视图,才能在视图上预览采集的视频。
  • 2.建议本地预览结束后,调用该 API 设置预览视图为 nil。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setPreviewViewBackgroundColor:channelIndex:

设置预览控件的背景颜色

- (bool)setPreviewViewBackgroundColor:(int)color channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

color

颜色,取值为0x00RRGGBB

index

推流 channel Index

Return Value

true 表示调用成功,false 表示调用失败。

Declared In

ZegoLiveRoomApi-Publisher2.h

– startPreview:

启动本地预览

- (bool)startPreview:(ZegoAPIPublishChannelIndex)index

Parameters

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

  • 注意:
  • 1.建议在启动本地预览前,调用 setPreviewView:channelIndex: 设置本地预览视图。
  • 2.在退出房间后,SDK 内部会停止预览,如果需要继续预览,需要重新调用本方法开启预览。

Declared In

ZegoLiveRoomApi-Publisher2.h

– stopPreview:

停止本地预览

- (bool)stopPreview:(ZegoAPIPublishChannelIndex)index

Parameters

index

推流 channel Index

Return Value

true 成功,false 失败

Declared In

ZegoLiveRoomApi-Publisher2.h

– setPublishEncryptKey:channelIndex:

设置推流加密密钥

- (void)setPublishEncryptKey:(NSData *)key channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

key

加密密钥(支持16/24/32字节)

channelIndex

推流使用的推流通道

Declared In

ZegoLiveRoomApi-Publisher2.h

– setVideoSource:channelIndex:

设置采集视频源类型

- (bool)setVideoSource:(ZegoVideoSourceType)srcType channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

srcType

源类型

index

推流 channel Index

Return Value

true 设置成功,false 设置失败

Discussion

注意: 1. 当 srcType 设置为 VIDEO_SRC_EXTERNAL_CAPTURE 但对应通道没有外部采集工厂时,将自动修正为 VIDEO_SRC_CAMERA; 2. 当 srcType 设置为 VIDEO_SRC_NONE 时,表示不启动视频采集,即没有视频数据,支持在主路和辅路使用; 3. 当 srcType 设置为 VIDEO_SRC_DEFAULT 时,如果有设置外部视频采集工厂,则使用外部采集,否则使用内部采集; 4. 当 srcType 设置为 VIDEO_SRC_CAMERA 时,即使设置了外部视频采集工厂,也会使用摄像头作为视频数据源; 5. 当 index 为 PUBLISH_CHN_MAIN 时,srcType 不能设置为 VIDEO_SRC_MAIN_PUBLISH_CHN 和 VIDEO_SRC_PLAYER; 6. 当 index 为 PUBLISH_CHN_AUX 且 srcType 设置为 VIDEO_SRC_MAIN_PUBLISH_CHN 时,需要 PUBLISH_CHN_MAIN 有设备工作,否则 PUBLISH_CHN_AUX 无法正常推出视频数据; 7. 当 index 为 PUBLISH_CHN_AUX 且 srcType 设置为 VIDEO_SRC_PLAYER 时,需要 PUBLISH_CHN_MAIN 有设备工作,否则媒体播放器无法正常循环播放; 8. 当 srcType 设置为有实例的视频源类型时,例如:VIDEO_SRC_PLAYER,默认使用实例 ID 为 0 的实例; 9. 一旦使用过此 API 设置采集视频源类型,在停止推流时,SDK 不会重置视频采集源类型;

Declared In

ZegoLiveRoomApi-Publisher2.h

– setVideoSource:instanceID:channelIndex:

设置采集视频源类型

- (bool)setVideoSource:(ZegoVideoSourceType)srcType instanceID:(unsigned int)instanceID channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

srcType

源类型

index

推流 channel Index

intanceID

采集源实例 ID

Return Value

true 设置成功,false 设置失败

Discussion

注意: 1. 当 srcType 设置为 VIDEO_SRC_EXTERNAL_CAPTURE 但对应通道没有外部采集工厂时,将自动修正为 VIDEO_SRC_CAMERA; 2. 当 srcType 设置为 VIDEO_SRC_NONE 时,表示不启动视频采集,即没有视频数据; 3. 当 srcType 设置为 VIDEO_SRC_DEFAULT 时,如果有设置外部视频采集工厂,则使用外部采集,否则使用内部采集; 4. 当 srcType 设置为 VIDEO_SRC_CAMERA 时,即使设置了外部视频采集工厂,也会使用摄像头作为视频数据源; 5. 当 index 为 PUBLISH_CHN_MAIN 时,srcType 不能设置为 VIDEO_SRC_MAIN_PUBLISH_CHN 和 VIDEO_SRC_PLAYER; 6. 当 index 为 PUBLISH_CHN_AUX 且 srcType 设置为 VIDEO_SRC_MAIN_PUBLISH_CHN 时,需要 PUBLISH_CHN_MAIN 有设备工作,否则 PUBLISH_CHN_AUX 无法正常推出视频数据; 7. 当 index 为 PUBLISH_CHN_AUX 且 srcType 设置为 VIDEO_SRC_PLAYER 时,需要 PUBLISH_CHN_MAIN 有设备工作,否则媒体播放器无法正常循环播放; 8. 一旦使用过此 API 设置采集视频源类型,在停止推流时,SDK 不会重置视频采集源类型;

Declared In

ZegoLiveRoomApi-Publisher2.h

– setAudioSource:channelIndex:

设置采集音频源类型

- (bool)setAudioSource:(ZegoAudioSourceType)srcType channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

srcType

源类型

index

推流 channel Index

Return Value

true 设置成功,false 设置失败

Discussion

注意: 1. 当 srcType 设置为 AUDIO_SRC_NONE 时,表示不启动音频采集,即没有音频数据; 2. 当 index 为 PUBLISH_CHN_MAIN 时,srcType 不能设置为 AUDIO_SRC_MAIN_PUBLISH_CHN 和 AUDIO_SRC_PLAYER; 3. 一旦使用过此 API 设置采集音频源类型,在停止推流时,SDK 不会重置音频采集源类型;

Declared In

ZegoLiveRoomApi-Publisher2.h

+ getMaxPublishChannelCount

获取 SDK 支持的最大同时推流数

+ (int)getMaxPublishChannelCount

Return Value

最大支持推流数

Declared In

ZegoLiveRoomApi-Publisher2.h

– startPublishing2:title:flag:channelIndex:

开始指定通道发布直播(推流)

- (bool)startPublishing2:(NSString *)streamID title:(NSString *)title flag:(int)flag channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

streamID

发布直播流的流ID,仅支持长度不超过 256 字节的数字、下划线、字母,streamID 需要在整个 AppID 内全局唯一

title

直播名称,可空,默认为主播用户名

flag

发布直播的模式

channelIndex

推流使用的推流通道

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 注意:
  • 1.可以登录房间成功后调用,发布直播后可以使用 [ZegoLiveRoomApi(Publisher2) -stopPublishing:] 停止发布直播。
  • 2.发布直播 API 调用成功后,SDK 会在 [ZegoLivePublisherDelegate -onPublishStateUpdate:streamID:streamInfo:] 回调中通知发布结果,同一房间的其他人会在 [ZegoLiveRoomDelegate -onStreamUpdated:streams:roomID:] 回调中收到流新增通知。
  • 3.如果有收到 [ZegoRoomDelegate -onDisconnect:roomID:] 回调,则不会再收到 [ZegoLivePublisherDelegate -onPublishStateUpdate:streamID:streamInfo:] 回调。
  • 4.为了满足客户的秒开播需求,该接口可以在调用登录房间接口后同步调用,如果登录房间失败,则直播发布也失败。
  • 5.[ZegoLiveRoonApi(Publisher) -startPublishing] 既是主通道推流。

Declared In

ZegoLiveRoomApi-Publisher2.h

– startPublishing2:title:flag:extraInfo:channelIndex:

开始发布直播(指定通道推流)

- (bool)startPublishing2:(NSString *)streamID title:(NSString *)title flag:(int)flag extraInfo:(NSString *)extraInfo channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

streamID

发布直播流的流ID,仅支持长度不超过 256 字节的数字、下划线、字母,streamID 需要在整个 AppID 内全局唯一

title

直播名称,可空,默认为主播用户名

flag

发布直播的模式,参考 ZegoApiPublishFlag 定义

extraInfo

流附加信息,可空,传空表示附加信息为空字符串,仅支持长度不超过 1024 字节的字符串

channelIndex

推流使用的推流通道

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 注意:
  • 1.可以登录房间成功后调用,发布直播后可以使用 [ZegoLiveRoomApi(Publisher2) -stopPublishing:] 停止发布直播。
  • 2.发布直播 API 调用成功后,SDK 会在 [ZegoLivePublisherDelegate -onPublishStateUpdate:streamID:streamInfo:] 回调中通知发布结果,同一房间的其他人会在 [ZegoLiveRoomDelegate -onStreamUpdated:streams:roomID:] 回调中收到流新增通知。
  • 3.如果有收到 [ZegoRoomDelegate -onDisconnect:roomID:] 回调,则不会再收到 [ZegoLivePublisherDelegate -onPublishStateUpdate:streamID:streamInfo:] 回调。
  • 4.为了满足客户的秒开播需求,该接口可以在调用登录房间接口后同步调用,如果登录房间失败,则直播发布也失败。
  • 5.[ZegoLiveRoonApi(Publisher) -startPublishing] 既是主通道推流。

Declared In

ZegoLiveRoomApi-Publisher2.h

– startPublishing2:title:flag:extraInfo:params:channelIndex:

开始发布直播

- (bool)startPublishing2:(NSString *)streamID title:(NSString *)title flag:(int)flag extraInfo:(NSString *)extraInfo params:(NSString *)params channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

streamID

流 ID

title

直播名称,可选,默认为主播用户名

flag

直播属性,参考 ZegoApiPublishFlag 定义

extraInfo

流附加信息, 最大为 1024 字节

params

推流参数

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

发布直播成功后,等待 [ZegoLivePublisherDelegate -onPublishStateUpdate:streamID:streamInfo:] 通知

Declared In

ZegoLiveRoomApi-Publisher2.h

– startPublishWithParams:

开始发布直播

- (bool)startPublishWithParams:(ZegoAPIPublishStreamParams *)params

Parameters

params

推流参数, 详见 ZegoAPIPublishStreamParams

Return Value

true 成功,false 失败

Discussion

发布直播成功后,等待 [ZegoLivePublisherDelegate -onPublishStateUpdate:streamID:streamInfo:] 通知

Declared In

ZegoLiveRoomApi-Publisher2.h

– muteVideoPublish:channelIndex:

推流时是否发送视频数据。

- (int)muteVideoPublish:(bool)mute channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

mute

true 不发送(仅预览),false 发送

channelIndex

推流通道索引

Return Value

0 代表设置成功成功,否则设置失败 @attention 拉流端通过 OnRemoteCameraStatusUpdate 回调监听此状态是否改变; @attention 仅拉 UDP 流时,才能接收到状态变更通知;

Declared In

ZegoLiveRoomApi-Publisher2.h

– muteAudioPublish:channelIndex:

推流时是否发送音频数据。

- (int)muteAudioPublish:(bool)mute channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

mute

true 不发送,false 发送

channelIndex

推流通道索引

Return Value

0 代表设置成功成功,否则设置失败 @attention 可以通过 ZegoLiveApiAudioRecordDelegate 回调获取本地音频数据

Declared In

ZegoLiveRoomApi-Publisher2.h

– updateStreamExtraInfo:channelIndex:

更新流附加信息

- (bool)updateStreamExtraInfo:(NSString *)extraInfo channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

extraInfo

流附加信息, 最大为 1024 字节

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

通常在主播方的 [ZegoLivePublisherDelegate -onPublishStateUpdate:streamID:streamInfo:] 通知中,或其他需更新流附加信息的场合下调用。更新流附加信息成功后,除调用方外,同一房间内的其他人会收到 [ZegoLiveRoomDelegate -onStreamExtraInfoUpdated:roomID] 通知

Declared In

ZegoLiveRoomApi-Publisher2.h

– stopPublishing:

停止指定通道发布直播(推流)

- (bool)stopPublishing:(ZegoAPIPublishChannelIndex)index

Parameters

index

推流使用的推流通道

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 注意:
  • 1.用于停止已发布的直播,可以在发布直播后调用。
  • 2.停止发布直播不会触发 [ZegoLivePublisherDelegate -onPublishStateUpdate:streamID:streamInfo:] 回调。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setPublishConfig:channelIndex:

自定义推流配置

- (void)setPublishConfig:(NSDictionary *)config channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

config

配置信息 key-value,直推 CDN 时, 使用kPublishCDNTarget, value 为用户指定的直推 CDN 地址. 连麦推流时, 使用kPublishCustomTarget, value 为用户指定的转推 RTMP 地址,非 RTMP 地址可能导致转推失败。参考 zego-api-defines-oc.h 中相关定义

index

推流 channel Index

Discussion

开发者如果使用自定义转推功能,推流开始前,必须调用此接口设置转推 RTMP 地址(SDK 推流方式必须为 UDP,转推地址必须为 RTMP),否则可能导致转推失败。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setCustomCDNPublishTarget:channelIndex:

设置自定义直推CDN的配置,可支持TCP, QUIC协议

- (bool)setCustomCDNPublishTarget:(ZegoAPICDNPublishTarget *)target channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

target

自定义直推 CDN 地址的配置信息,详见 [ZegoAPICDNPublishTarget]

index

推流 channel Index

Return Value

true 调用成功 false 调用失败

Declared In

ZegoLiveRoomApi-Publisher2.h

– addPublishTarget:streamID:completion:

添加已发布直播的转推地址

- (bool)addPublishTarget:(NSString *)target streamID:(NSString *)streamID completion:(ZegoUpdatePublishTargetCompletionBlock)completionBlock

Parameters

target

添加的转推地址(支持rtmp/avertp)

streamID

正在发布的直播流ID

completionBlock

完成回调

Return Value

true 表示调用成功,false 表示调用失败。

Declared In

ZegoLiveRoomApi-Publisher2.h

– addPublishTarget:streamID:timeout:completion:

添加已发布直播的转推地址

- (bool)addPublishTarget:(NSString *)target streamID:(NSString *)streamID timeout:(int)timeout completion:(ZegoUpdatePublishTargetCompletionBlock)completionBlock

Parameters

target

添加的转推地址(支持rtmp/avertp)

streamID

正在发布的直播流ID

timeout

超时时间,如果在时间内没有开始转推要回调通知。默认为0,表示不超时,有效范围[5,600],单位秒。小于0会被重置为0,1到4会被重置为5,大于600会被重置为600。

completionBlock

完成回调

Return Value

true 表示调用成功,false 表示调用失败。

Declared In

ZegoLiveRoomApi-Publisher2.h

– deletePublishTarget:streamID:completion:

删除转推地址

- (bool)deletePublishTarget:(NSString *)target streamID:(NSString *)streamID completion:(ZegoUpdatePublishTargetCompletionBlock)completionBlock

Parameters

completionBlock

删除转推地址回调

pszStreamID

推流ID

strTarget

转推地址(支持rtmp/avertp)

Return Value

true 成功,false 失败 @attention 在InitSDK之后调用

Declared In

ZegoLiveRoomApi-Publisher2.h

– setAVConfig:channelIndex:

设置视频配置

- (bool)setAVConfig:(ZegoAVConfig *)config channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

config

配置参数(视频编码输出分辨率、视频采集分辨率、视频帧率、视频码率),参考 ZegoAVConfig 定义

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

推流开始前调用本 API 进行视频采集参数配置

Declared In

ZegoLiveRoomApi-Publisher2.h

– setPublishDualStreamConfig:channelIndex:

设置大小流每层视频流配置

- (bool)setPublishDualStreamConfig:(NSArray<ZegoAPIPublishDualStreamConfig*> *)config_list channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

config_list

配置参数(视频编码输出分辨率、视频采集分辨率、视频帧率、视频码率),参考 ZegoAPIPublishDualStreamConfig 定义

index

推流 channel Index

Return Value

true 成功,false 失败 @discussion 1、必须先调用 setVideoCodecId 指定编码器为VIDEO_CODEC_H264_DUAL_STREAM 才有效, 2、大小层都需设置。 3、指定的大小流编码分辨率比值一致。例如都为4:3

Declared In

ZegoLiveRoomApi-Publisher2.h

– setVideoKeyFrameInterval:channelIndex:

设置视频关键帧间隔

- (bool)setVideoKeyFrameInterval:(int)intervalSecond channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

intervalSecond

关键帧间隔,单位为秒,默认 2 秒

index

推流使用的推流通道

Return Value

true 表示调用成功,false 表示调用失败

Discussion

  • 注意:推流前调用有效。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setAppOrientation:channelIndex:

设置手机方向

- (bool)setAppOrientation:(UIInterfaceOrientation)orientation channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

orientation

手机方向

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

  • 本设置用于校正输出视频朝向,默认竖屏。建议在预览和推流之前设置好方向。
  • 不建议在推流过程中旋转画面,原因:
    1. 如果刚开始为竖屏开播,此时旋转为横屏,但是分辨率仍然是竖屏的,会导致横屏后,画面放大的效果(按照等比填充的模式) 或者 上下黑边的效果(按照等比缩放的模式),除非旋转为横屏后,画面的分辨率也做修改。
    1. 直播过程中修改分辨率的话,会导致录制文件(回放)有异常,因此不建议中途旋转画面。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setPreviewCropRect:originalSize:publishChannel:

设置预览的裁剪视图配置

- (void)setPreviewCropRect:(CGRect)rect originalSize:(CGSize)originalSize publishChannel:(ZegoAPIPublishChannelIndex)index

Parameters

rect

裁剪坐标

originalSize

原始图像尺寸

idx

推流通道号,参见 ZegoAPIPublishChannelIndex

Discussion

@attention 推流前或者推流过程中设置都有效,当次推流有效。

Declared In

ZegoLiveRoomApi-Publisher2.h

– enableBeautifying:channelIndex:

主播方开启美颜功能

- (bool)enableBeautifying:(int)feature channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

feature

美颜特性,参考 ZegoBeautifyFeature 定义。默认无美颜

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置

Declared In

ZegoLiveRoomApi-Publisher2.h

– setPolishStep:channelIndex:

设置美颜磨皮的采样步长

- (bool)setPolishStep:(float)step channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

step

采样步长,取值范围[1,16]。默认 4.0

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置。设置时需确保对应美颜特性开启

Declared In

ZegoLiveRoomApi-Publisher2.h

– setPolishFactor:channelIndex:

设置美颜采样颜色阈值

- (bool)setPolishFactor:(float)factor channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

factor

采样颜色阈值,取值范围[0,16]。默认 4.0

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置。设置时需确保对应美颜特性开启

Declared In

ZegoLiveRoomApi-Publisher2.h

– setWhitenFactor:channelIndex:

设置美颜美白的亮度修正参数

- (bool)setWhitenFactor:(float)factor channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

factor

亮度修正参数,取值范围[0,1],值越大亮度越暗。默认 0.5

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置。设置时需确保对应美颜特性开启

Declared In

ZegoLiveRoomApi-Publisher2.h

– setSharpenFactor:channelIndex:

设置锐化参数

- (bool)setSharpenFactor:(float)factor channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

factor

锐化参数,取值范围[0,2],值越大锐化越强。默认 0.2

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置。设置时需确保对应美颜特性开启

Declared In

ZegoLiveRoomApi-Publisher2.h

– setFilter:channelIndex:

设置滤镜

- (bool)setFilter:(ZegoFilter)filter channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

filter

滤镜种类,参考 ZegoFilter 定义。默认不使用滤镜

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置

Declared In

ZegoLiveRoomApi-Publisher2.h

– setLowlightEnhancement:channelIndex:

设置低照度增强

- (bool)setLowlightEnhancement:(ZegoLowlightEnhanceMode)mode channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

mode

低照度增强模式。

index

推流 channel Index。 @attention 初始化 SDK 后可调用。

Discussion

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

Note: 适用场景:推流端环境较暗,或者摄像头设置的帧率较高导致画面偏暗,无法正常显示或识别主体。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setPreviewViewMode:channelIndex:

设置本地预览视图的模式

- (bool)setPreviewViewMode:(ZegoVideoViewMode)mode channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

mode

视图模式。详见 ZegoVideoViewMode 定义

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

  • 视图模式默认为 ZegoVideoViewModeScaleAspectFill。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setPreviewRotation:channelIndex:

设置预览渲染图像的朝向

- (bool)setPreviewRotation:(int)rotate channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

rotate

逆时针旋转角度

Return Value

true 成功,false 失败

Discussion

  • 注意:
  • 1.只能设置(0/90/180/270),默认为0。
  • 2.该设置只是设置预览渲染图像的朝向,不会改变推流时的图像朝向。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setCaptureFrameRotation:channelIndex:

设置视频采集的旋转角度

- (bool)setCaptureFrameRotation:(int)rotate channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

rotate

逆时针旋转角度

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

  • 注意:
  • 1.只能设置(0/90/180/270),默认为0。
  • 2.该设置会改变推流时的图像朝向。
  • 3.在InitSDK之后调用有效,UninitSDK前有效。支持推流时调用。

Declared In

ZegoLiveRoomApi-Publisher2.h

– enablePreviewMirror:channelIndex:

是否启用预览镜像

- (bool)enablePreviewMirror:(bool)enable channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

enable

true 启用,false 不启用。默认 true

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置

Declared In

ZegoLiveRoomApi-Publisher2.h

– enableCaptureMirror:channelIndex:

是否启用摄像头采集结果镜像

- (bool)enableCaptureMirror:(bool)enable channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

enable

true 启用,false 不启用。默认 false

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置

Declared In

ZegoLiveRoomApi-Publisher2.h

– setVideoMirrorMode:channelIndex:

设置预览和推流镜像

- (bool)setVideoMirrorMode:(ZegoVideoMirrorMode)mode channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

mode

镜像模式,详见 ZegoVideoMirrorMode

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

  • 预览镜像只对前置摄像头有效,后置无效。
  • 默认预览启用镜像,推流不启用镜像(即 ZegoVideoMirrorModePreviewMirrorPublishNoMirror)

Declared In

ZegoLiveRoomApi-Publisher2.h

– enableRateControl:channelIndex:

是否开启码率控制

- (bool)enableRateControl:(bool)enable channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

enable

true 启用,false 不启用。默认不启用

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

  • 注意:1. 在推流之前设置有效;
  • 只适用于 RTMP 推流。

开启后,在带宽不足的情况下码率自动适应当前带宽

Declared In

ZegoLiveRoomApi-Publisher2.h

– setVideoEncoderRateControlConfig:encoderCRF:channelIndex:

设置编码器码率控制策略

- (void)setVideoEncoderRateControlConfig:(ZegoAPIVideoEncoderRateControlStrategy)strategy encoderCRF:(int)encoderCRF channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

strategy

策略配置,参考 ZegoVideoEncoderRateControlStrategy

encoderCRF

当策略为恒定质量(ZEGOAPI_RC_VBR/ZEGOAPI_RC_CRF)有效,取值范围 [0~51],越小质量越好,但是码率会相应变大。建议取值范围 [18, 28]

index

推流 channel Index

Declared In

ZegoLiveRoomApi-Publisher2.h

– setFrontCam:channelIndex:

是否使用前置摄像头,否则使用后置。

- (bool)setFrontCam:(bool)bFront channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

bFront

是否使用前置摄像头

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

  • 如果使用前置摄像头,本地预览和推流都将使用前置摄像头拍摄的数据。SDK 默认使用前置摄像头。

Declared In

ZegoLiveRoomApi-Publisher2.h

– enableCamera:channelIndex:

是否开启视频采集

- (bool)enableCamera:(bool)bEnable channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

bEnable

是否开启

index

推流 channel Index

Return Value

设置结果。true 成功,false 失败

Discussion

  • 开启视频采集后,预览视图才能显示预览画面,推流时才包含采集的视频数据。SDK 默认开启视频采集。

Declared In

ZegoLiveRoomApi-Publisher2.h

– enableTorch:channelIndex:

是否开启手电筒

- (bool)enableTorch:(bool)bEnable channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

bEnable

是否开启

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

  • 推流时可调用本 API 进行参数配置。SDK 默认关闭手电筒。

Declared In

ZegoLiveRoomApi-Publisher2.h

– takePreviewSnapshot:channelIndex:

预览截图

- (bool)takePreviewSnapshot:(ZegoSnapshotCompletionBlock)blk channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

blk

截图结果通过 blk 回调

index

推流 channel Index

Return Value

true 成功,false 失败

Declared In

ZegoLiveRoomApi-Publisher2.h

– setDummyCaptureImagePath:channelIndex:

设置关闭摄像头时所推静态图片的路径

- (void)setDummyCaptureImagePath:(NSString *)filePath channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

filePath

图片路径。如果是完整路径则添加 file: 前缀,如:@“file:/var/image.png";资产则添加 asset: 前缀,如:@"asset:watermark”

index

推流 channel Index

Discussion

Note: InitSDK之后,关闭摄像头前调用本 API 进行参数配置,关闭摄像头后会推静态图片

Note: 支持推静态图片时调用此 API 动态更换静态图片

Declared In

ZegoLiveRoomApi-Publisher2.h

– setWaterMarkImagePath:channelIndex:

设置水印的图片路径

- (void)setWaterMarkImagePath:(NSString *)filePath channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

filePath

图片路径。如果是完整路径则添加 file: 前缀,如:@“file:/var/image.png";资产则添加 asset: 前缀,如:@"asset:watermark”

index

推流 channel Index

Discussion

推流开始前调用本 API 进行参数配置

Declared In

ZegoLiveRoomApi-Publisher2.h

– setPublishWaterMarkRect:channelIndex:

设置水印在采集视频中的位置

- (void)setPublishWaterMarkRect:(CGRect)waterMarkRect channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

waterMarkRect

水印的位置与尺寸

index

推流 channel Index

Discussion

左上角为坐标系原点,区域不能超过编码分辨率设置的大小

Declared In

ZegoLiveRoomApi-Publisher2.h

– setPreviewWaterMarkRect:channelIndex:

设置水印在预览视频中的位置

- (void)setPreviewWaterMarkRect:(CGRect)waterMarkRect channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

waterMarkRect

水印的位置与尺寸

index

推流 channel Index

Discussion

左上角为坐标系原点,区域不能超过预览视图的大小

Declared In

ZegoLiveRoomApi-Publisher2.h

– enableScreenCaptureEncodeOptimization:channelIndex:

开启屏幕分享编码优化

- (void)enableScreenCaptureEncodeOptimization:(bool)enable channelIndex:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

enable

是否开启。true:开启,false:关闭。默认是关闭的。

channelIndex

推流通道 @attention 前置条件:仅在软件编码的情况下使用 OpenH264 编码时有效。在默认情况下 SDK 就是使用 OpenH264 编码器。 @attention 调用 +requireHardwareEncoder:开启硬件编码后,本接口失效。 @attention 调用 setVideoCodecId:ofChannel: 设置非默认选项时,本接口失效。

Discussion

Note: 推流之前设置有效,当次推流结束后失效。

Note: 推荐使用场景:在屏幕共享推流时,SDK 会优化编码,使得清晰度会好很多,视频码率比较稳定,还支持分层编码。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setChannelExtraParam:channelIndex:

给推流通道设置扩展参数,一般不建议修改

- (void)setChannelExtraParam:(NSString *)param_config channelIndex:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

param_config

参数配置信息

idx

推流通道索引 @attention 配置项写法,例如 “zego_channel_param_key_video_x264_config_tune=animation”, 等号后面值的类型要看下面每一项的定义 @attention “zego_channel_param_key_video_x264_config_tune”, string value: animation, 设置编码的 tune 值,目前只支持 animation,仅使用 X264 编码时有效 @attention 初始化 SDK 之后推流前设置才生效,推流过程中设置无效

Declared In

ZegoLiveRoomApi-Publisher2.h

– getAVCaptureDevice:

获取当前推流通道使用的 AVCaptureDevice 对象

- (AVCaptureDevice *)getAVCaptureDevice:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

idx

推流通道索引

@attention 必须在预览之后或者推流之后才能调用

Declared In

ZegoLiveRoomApi-Publisher2.h

– setLatencyMode:channelIndex:

设置指定推流通道的延迟模式

- (void)setLatencyMode:(ZegoAPILatencyMode)mode channelIndex:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

mode

延迟模式,默认 ZEGOAPI_LATENCY_MODE_NORMAL 普通延迟模式

channelIndex

推流通道, 详见 ZegoAPIPublishChannelIndex

Discussion

  • 设置 SDK 推流时音频使用的延迟模式,可以根据自己的业务场景选择最合适的延迟模式,详情可咨询 ZEGO 技术支持。

  • 注意:在InitSDK之后,推流前调用有效。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setAudioChannelCount:channelIndex:

设置指定推流通道的推流音频声道数

- (void)setAudioChannelCount:(int)count channelIndex:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

count

声道数,1 或 2,默认为 1(单声道)

channelIndex

推流通道, 详见 ZegoAPIPublishChannelIndex

Discussion

  • 注意:
  • 1.在InitSDK之后,推流前调用有效。
  • 2.[ZegoLiveRoomApi(Publisher) -setLatencyMode:] 中将延迟模式设置为 ZEGO_LATENCY_MODE_NORMAL、ZEGO_LATENCY_MODE_NORMAL2、ZEGO_LATENCY_MODE_LOW3 才能设置双声道。
  • 3.在移动端双声道通常需要配合音频前处理才能体现效果。

Declared In

ZegoLiveRoomApi-Publisher2.h

– enableTrafficControl:properties:channelIndex:

是否开启流量控制

- (void)enableTrafficControl:(bool)enable properties:(NSUInteger)properties channelIndex:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

enable

true 开启;false 关闭,默认 true

properties

流量控制属性 (码率、帧率、分辨率),可以多选,默认为 ZEGOAPI_TRAFFIC_CONTROL_ADAPTIVE_FPS 自适应帧率,参考 ZegoAPITrafficControlProperty 类型选项

channelIndex

推流通道, 详见 ZegoAPIPublishChannelIndex

Discussion

  • 开启流量控制开关可以使 SDK 通过动态调整音视频的码率、帧率、分辨率来适应当前网络环境,从而保证直播的流畅发布。

  • 注意:

  • 1.在推流前调用,连麦/混流方式调用此接口有效。
  • 2.当关闭流量控制时,流量控制属性将被忽略。
  • 3.只适用于 UDP 推流。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setMinVideoBitrateForTrafficControl:mode:channelIndex:

设置流量控制中视频码率最小值

- (void)setMinVideoBitrateForTrafficControl:(int)bitrate mode:(ZegoAPITrafficControlMinVideoBitrateMode)mode channelIndex:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

bitrate

视频最小码率(bps),默认为 0,即尽可能的保持视频流畅

mode

视频码率低于最小值后 SDK 的视频推流策略,默认为 ZEGOAPI_TRAFFIC_CONTROL_MIN_VIDEO_BITRATE_NO_VIDEO 停止视频发送

channelIndex

推流通道, 详见 ZegoAPIPublishChannelIndex

Discussion

  • 开启流量控制后,设置视频码率最小值可以让 SDK 当网络不足以达到发送视频最小码率时采取用户设置的策略。

  • 注意:可以在初始化之后的任意时间调用,需要开启流量控制该参数才会生效。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setMinVideoFpsForTrafficControl:channelIndex:

设置流量控制中视频帧率最小值

- (void)setMinVideoFpsForTrafficControl:(int)fps channelIndex:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

fps

视频最小帧率(fps),默认为 0,即尽可能的保持视频流畅

Discussion

  • 开启流量控制后,设置视频帧率最小值可以让 SDK 采取用户设置的策略。

  • 注意:可以在初始化之后的任意时间调用,需要开启流量控制该参数才会生效。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setMinVideoResolutionForTrafficControl:height:channelIndex:

设置流量控制中视频分辨率最小值

- (void)setMinVideoResolutionForTrafficControl:(int)width height:(int)height channelIndex:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

width

视频分辨率的宽, 默认为 0,即尽可能的保持视频流畅

height

视频分辨率的高, 默认为 0,即尽可能的保持视频流畅

Discussion

  • 开启流量控制后,设置视频分辨率最小值可以让 SDK 采取用户设置的策略。

  • 注意:可以在初始化之后的任意时间调用,需要开启流量控制该参数才会生效。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setTrafficControlFocusOn:channelIndex:

设置触发流量控制的关注因素

- (void)setTrafficControlFocusOn:(ZegoAPITrafficControlFocusOn)focusOn channelIndex:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

focusOn

触发流量控制的关注因素。选择 ZEGOAPI_TRAFFIC_CONTROL_FOCUS_ON_LOCAL_ONLY 时,只关注本地网络状况。选择 ZEGOAPI_TRAFFIC_CONTROL_FOCUS_ON_REMOTE 时,不仅关注本地网络,同时也兼顾远端网络,目前只在 1v1 场景下有效。

channelIndex

推流通道, 详见 ZegoAPIPublishChannelIndex

Discussion

  • 在初始化 SDK 之后,推流之前调用有效。如果每次推流前不重新设置,将继续使用上次的配置。在反初始化 SDK 之后失效。

  • 当 focusOn 设置为 ZEGOAPI_TRAFFIC_CONTROL_FOCUS_ON_REMOTE 时,当对方的网络拥塞时,推流端可能限定推流的码率。

  • 当通过 enableTrafficControl:properties: 接口开启了指定推流通道的流量控制后,可通过该接口控制是否因为远端网络状况差而启动流量控制。在 1v1 场景下默认是开启的。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setStreamAlignmentProperty:channelIndex:

设置指定通道推流是否校准网络时间,用于混流时各路流的对齐。

- (int)setStreamAlignmentProperty:(int)alignment channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

alignment

1开启,0关闭,默认关闭

index

推流通道

Return Value

0 代表设置成功成功,否则设置失败 @attention 此方法依赖网络时间模块,且需要调用推流接口startPublishWithParams中推流,且参数 ZegoAPIPublishStreamParams.forceSynchronousNetworkTime 为1开启网络时间同步 @attention initSDK 后, 推流前后都可设置推流之前设置

Declared In

ZegoLiveRoomApi-Publisher2.h

– setVideoEncodeMode:channelIndex:

设置视频编码模式

- (void)setVideoEncodeMode:(ZegoAPIVideoEncodeMode)mode channelIndex:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

mode

视频编码模式,详见 ZegoVideoEncodeMode。默认是 ZEGOAPI_VIDEO_ENCODE_MODE_LOW_DELAY。

channelIndex

推流通道, 详见 ZegoAPIPublishChannelIndex

Discussion

Note: 推流之前设置有效,在开始推流后设置,下次推流生效。

Note: ZEGOAPI_VIDEO_ENCODE_MODE_LOW_BITRATE 模式只在使用 x264 软件编码的情况下生效,需要通过 ZEGO 的特殊渠道发包才能指定 x264 编码器。

Declared In

ZegoLiveRoomApi-Publisher2.h

– enableVideoObjectSegmentation:type:channelIndex:

开启视频主体分割

- (void)enableVideoObjectSegmentation:(bool)enable type:(ZegoObjectSegmentationType)type channelIndex:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

enable

是否开启主体分割,默认关闭。

type

主体分割类型。

channelIndex

推流通道, 详见 ZegoAPIPublishChannelIndex

Discussion

Note: 调用时机:InitSDK 成功后才能调用本接口,可实时更改生效。

Note: 相关回调:调用后可以通过 [ZegoLivePublisherDelegate -onVideoObjectSegmentationStateChanged:state:channelIndex:errorCode:] 接收主体分割状态。 @attention 开启主体分割为耗时操作,轻勿频繁开启关闭。 @attention 该功能需要特殊编包,请联系 ZEGO 技术支持。

Declared In

ZegoLiveRoomApi-Publisher2.h

– enableVideoObjectSegmentation:config:channelIndex:

开启视频主体分割

- (void)enableVideoObjectSegmentation:(bool)enable config:(ZegoObjectSegmentationConfig *)config channelIndex:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

enable

是否开启主体分割,默认关闭。

config

主体分割配置。

channelIndex

推流通道, 详见 ZegoAPIPublishChannelIndex

Discussion

Note: 调用时机:InitSDK 成功后才能调用本接口,可实时更改生效。

Note: 相关回调:调用后可以通过 [ZegoLivePublisherDelegate -onVideoObjectSegmentationStateChanged:state:channelIndex:errorCode:] 接收主体分割状态。 @attention 开启主体分割为耗时操作,轻勿频繁开启关闭。 @attention 该功能需要特殊编包,请联系 ZEGO 技术支持。

Declared In

ZegoLiveRoomApi-Publisher2.h

– enableAlphaChannelVideoEncoder:alphaLayout:channelIndex:

开启视频编码器透明通道支持。

- (void)enableAlphaChannelVideoEncoder:(bool)enable alphaLayout:(ZegoAlphaLayoutType)alphaLayout channelIndex:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

enable

是否开启视频编码器透明通道支持,默认关闭。

channelIndex

推流通道, 详见 ZegoAPIPublishChannelIndex

layoutType

透明通道数据布局方式。

Discussion

Note: 调用时机:在推流前调用本接口。

Declared In

ZegoLiveRoomApi-Publisher2.h

– enableColorEnhancement:params:channelIndex:

开启色彩增强

- (void)enableColorEnhancement:(bool)enable params:(ZegoColorEnhancementParams *)params channelIndex:(ZegoAPIPublishChannelIndex)channelIndex

Parameters

enable

是否开启;true 表示开启;false 表示关闭。

params

色彩增强参数。

channelIndex

推流通道, 详见 ZegoAPIPublishChannelIndex

Discussion

Note: 调用时机:InitSDK 成功后才能调用本接口,可实时更改生效。

Declared In

ZegoLiveRoomApi-Publisher2.h

Publisher Methods

– setPublisherDelegate:

设置 Publisher 代理对象

- (bool)setPublisherDelegate:(id<ZegoLivePublisherDelegate>)publisherDelegate

Parameters

publisherDelegate

遵守 ZegoLivePublisherDelegate 协议的代理对象,SDK 内部会弱引用该对象。

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

Declared In

ZegoLiveRoomApi-Publisher.h

– setVideoCodecId:ofChannel:

设置是否使用分层视频编码

- (bool)setVideoCodecId:(ZegoVideoCodecAvc)codecId ofChannel:(ZegoAPIPublishChannelIndex)channel

Parameters

codecId

是否使用分层视频编码,默认 VIDEO_CODEC_DEFAULT 即不使用分层视频编码

channel

要设置的推流通道,默认设置主通道 ZEGOAPI_CHN_MAIN

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 使用分层视频编码可以实现开发者(连麦/混流)业务中不同终端显示不同质量的视频流、根据网络状态自适应拉取视频流的质量的场景,分层视频编码更详细的描述见官网相关文档。

  • 注意:

  • 1.在推流前调用有效。
  • 2.分层视频编码使用的是 ZEGO 的私有协议,仅限于连麦/混流方使用。
  • 3.推流方设置使用分层视频编码后,拉流方可以使用 [ZegoLiveRoomApi(Player) -activateVideoPlayStream:active:videoLayer:] 接口指定拉取的视频分层。

Declared In

ZegoLiveRoomApi-Publisher.h

– getVideoCodecCapabilityList

获取设备编码格式的能力

- (NSArray<ZegoAPICodecCapabilityInfo*> *)getVideoCodecCapabilityList

Return Value

设备支持的编码格式 @attention 初始化 SDK 之后调用 @attention 建议在回调初始化 SDK 成功之后调用该接口

Declared In

ZegoLiveRoomApi-Publisher.h

– setPreviewView:

设置本地预览视图

- (bool)setPreviewView:(ZEGOView *)view

Parameters

view

用于渲染本地预览视频的视图,SDK 内部会强引用该对象,传空表示停止 SDK 的本地预览渲染

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 注意:
  • 1.可以在初始化 SDK 之后的任意时间调用,建议在调用 startPreview 开启预览前,调用该 API 设置本地预览视图,才能在视图上预览采集的视频。
  • 2.建议本地预览结束后调用该 API 将本地预览视图置空。

Declared In

ZegoLiveRoomApi-Publisher.h

– setPreviewViewBackgroundColor:

设置预览控件的背景颜色

- (bool)setPreviewViewBackgroundColor:(int)color

Parameters

color

颜色,取值为0x00RRGGBB

Return Value

true 表示调用成功,false 表示调用失败。

Declared In

ZegoLiveRoomApi-Publisher.h

– startPreview

启动本地预览

- (bool)startPreview

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 注意:
  • 1.可以在初始化 SDK 之后的任意时间调用。
  • 2.调用 API 前,需要调用 [ZegoLiveRoomApi(Publisher) -setPreviewView:] 设置本地预览视图才可以看到采集的画面。
  • 3.在退出房间后,SDK 内部会停止预览,如果需要继续预览,需要重新调用本方法开启预览。
  • 4.本地预览默认开启预览镜像功能。

Declared In

ZegoLiveRoomApi-Publisher.h

– stopPreview

停止本地预览

- (bool)stopPreview

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 注意:
  • 1.可以在初始化 SDK 之后的任意时间调用。
  • 2.建议本地预览结束后调用 [ZegoLiveRoomApi(Publisher) -setPreviewView:] 将本地预览视图置空。

Declared In

ZegoLiveRoomApi-Publisher.h

– startPublishing:title:flag:

开始发布直播(推流)

- (bool)startPublishing:(NSString *)streamID title:(NSString *)title flag:(int)flag

Parameters

streamID

发布直播流的流ID,仅支持长度不超过 256 字节的数字、下划线、字母,streamID 需要在整个 AppID 内全局唯一

title

直播名称,可空,默认为主播用户名

flag

发布直播的模式,参考 ZegoApiPublishFlag 定义

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 注意:
  • 1.可以在登录房间成功后调用,发布直播后可以使用 [ZegoLiveRoomApi(Publisher) -stopPublishing] 停止发布直播。
  • 2.发布直播 API 调用成功后,SDK 会在 [ZegoLivePublisherDelegate -onPublishStateUpdate:streamID:streamInfo:] 回调中通知发布结果,同一房间的其他人会在 [ZegoLiveRoomDelegate -onStreamUpdated:streams:roomID:] 回调中收到流新增通知。
    1. 如果有收到 [ZegoRoomDelegate -onDisconnect:roomID:] 回调,则不会再收到 [ZegoLivePublisherDelegate -onPublishStateUpdate:streamID:streamInfo:] 回调。
  • 4.为了满足客户的秒开播需求,该接口可以在调用登录房间接口后同步调用,如果登录房间失败,则直播发布也失败。

See Also

Declared In

ZegoLiveRoomApi-Publisher.h

– startPublishing:title:flag:extraInfo:

开始发布直播(推流)

- (bool)startPublishing:(NSString *)streamID title:(NSString *)title flag:(int)flag extraInfo:(NSString *)extraInfo

Parameters

streamID

发布直播流的流ID,仅支持长度不超过 256 字节的数字、下划线、字母,streamID 需要在整个 AppID 内全局唯一

title

直播名称,可空,默认为主播用户名

flag

发布直播的模式,参考 ZegoApiPublishFlag 定义

extraInfo

流初始附加信息,可空,传空表示附加信息为空字符串,仅支持长度不超过 1024 字节的字符串

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 注意:
  • 1.可以在登录房间成功后调用,发布直播后可以使用 [ZegoLiveRoomApi(Publisher) -stopPublishing] 停止发布直播。
  • 2.发布直播 API 调用成功后,SDK 会在 [ZegoLivePublisherDelegate -onPublishStateUpdate:streamID:streamInfo:] 回调中通知发布结果,同一房间的其他人会在 [ZegoLiveRoomDelegate -onStreamUpdated:streams:roomID:] 回调中收到流新增通知。
    1. 如果有收到 [ZegoRoomDelegate -onDisconnect:roomID:] 回调,则不会再收到 [ZegoLivePublisherDelegate -onPublishStateUpdate:streamID:streamInfo:] 回调。
  • 4.为了满足客户的秒开播需求,该接口可以在调用登录房间接口后同步调用,如果登录房间失败,则直播发布也失败。

Declared In

ZegoLiveRoomApi-Publisher.h

– updateStreamExtraInfo:

更新流附加信息

- (bool)updateStreamExtraInfo:(NSString *)extraInfo

Parameters

extraInfo

流附加信息,可空,传空表示附加信息为空字符串,仅支持长度不超过 1024 字节的字符串

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 接收端只要开始拉流就会收到流附加信息及其后续更新,适用于想要在流信息中附带附加信息的情况(非变动频繁的信息)。

  • 注意:

  • 1.可以在初始化 SDK 之后的任意时间调用,会在直播流中附带该信息。
  • 2.更新流附加信息后,同一房间播放该直播流的人会收到 [ZegoLiveRoomDelegate -onStreamExtraInfoUpdated:roomID:] 回调。

Declared In

ZegoLiveRoomApi-Publisher.h

– stopPublishing

停止发布直播(结束推流)

- (bool)stopPublishing

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 注意:
  • 1.用于停止已发布的直播,可以在发布直播后调用。
  • 2.停止发布直播不会触发 [ZegoLivePublisherDelegate -onPublishStateUpdate:streamID:streamInfo:] 回调。

Declared In

ZegoLiveRoomApi-Publisher.h

– setPublishConfig:

自定义发布直播(推流)配置

- (void)setPublishConfig:(NSDictionary<NSString*,NSString*> *)config

Parameters

config

推流配置信息,直推 CDN 时, 使用kPublishCDNTarget, value 为用户指定的直推 CDN 地址. 连麦推流时, 使用kPublishCustomTarget, value 为用户指定的转推 RTMP 地址,非 RTMP 地址可能导致转推失败

Discussion

  • 使用连麦/混流推流模式时,可以通过该接口指定即构服务器转推 CDN 的地址。

  • 注意:推流开始前调用有效。

Declared In

ZegoLiveRoomApi-Publisher.h

– respondJoinLiveReq:result:

响应连麦请求

- (bool)respondJoinLiveReq:(int)seq result:(int)rspResult

Parameters

seq

连麦请求序列号,标识当次连麦请求

rspResult

响应结果,0 表示同意连麦

Return Value

true 成功,false 失败

Discussion

不支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。

多房间模式下请使用 [ZegoLiveRoomApi respondJoinLiveReq:result:room:],指定房间 ID。

主播端通过 [ZegoLivePublisherDelegate -onJoinLiveRequest:fromUserID:fromUserName:seq:] 收到观众连麦申请,再调用本 API 响应

Declared In

ZegoLiveRoomApi-Publisher.h

– respondJoinLiveReq:result:room:

响应连麦请求

- (bool)respondJoinLiveReq:(int)seq result:(int)rspResult room:(NSString *)roomID

Parameters

seq

连麦请求序列号,标识当次连麦请求

rspResult

响应结果,0 表示同意连麦

roomID

房间 ID

Return Value

true 成功,false 失败

Discussion

多房间模式下,必须指定房间 ID。

主播端通过 [ZegoLivePublisherDelegate -onJoinLiveRequest:fromUserID:fromUserName:seq:] 收到观众连麦申请,再调用本 API 响应

Declared In

ZegoLiveRoomApi-Publisher.h

– inviteJoinLive:responseBlock:

邀请连麦

- (bool)inviteJoinLive:(NSString *)userID responseBlock:(ZegoResponseBlock)blk

Parameters

userID

准备邀请的用户 ID

blk

邀请成功后,通过 blk 回调结果

Return Value

true 成功,false 失败

Discussion

不支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。

多房间模式下请使用 [ZegoLiveRoomApi inviteJoinLive:room:responseBlock:],指定房间 ID。

主播邀请连麦成功后,被邀请的观众收到 [ZegoLivePlayerDelegate -onInviteJoinLiveRequest:fromUserID:fromUserName:roomID:] 通知

Declared In

ZegoLiveRoomApi-Publisher.h

– inviteJoinLive:room:responseBlock:

邀请连麦

- (bool)inviteJoinLive:(NSString *)userID room:(NSString *)roomID responseBlock:(ZegoResponseBlock)blk

Parameters

userID

准备邀请的用户 ID

roomID

房间 ID

blk

邀请成功后,通过 blk 回调结果

Return Value

true 成功,false 失败

Discussion

多房间模式下,必须指定房间 ID。

主播邀请连麦成功后,被邀请的观众收到 [ZegoLivePlayerDelegate -onInviteJoinLiveRequest:fromUserID:fromUserName:roomID:] 通知

Declared In

ZegoLiveRoomApi-Publisher.h

– endJoinLive:completionBlock:

结束连麦

- (bool)endJoinLive:(NSString *)userId completionBlock:(ZegoCustomCommandBlock)block

Parameters

userId

指定UserId停止连麦

block

信令发送结果

Return Value

true 成功,false 失败

Discussion

不支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。

多房间模式下请使用 [ZegoLiveRoomApi endJoinLive:room:completionBlock:],指定房间 ID。

Declared In

ZegoLiveRoomApi-Publisher.h

– endJoinLive:room:completionBlock:

结束连麦

- (bool)endJoinLive:(NSString *)userId room:(NSString *)roomID completionBlock:(ZegoCustomCommandBlock)block

Parameters

userId

指定UserId停止连麦

roomID

房间 ID

block

信令发送结果

Return Value

true 成功,false 失败

Discussion

多房间模式下,必须指定房间 ID。

Declared In

ZegoLiveRoomApi-Publisher.h

+ requireHardwareEncoder:

开启/关闭推流硬件编码

+ (bool)requireHardwareEncoder:(bool)bRequire

Parameters

bRequire

true 开启,false 关闭。默认 false

Return Value

true 成功,false 失败

Discussion

  • 注意:
    1. 必须在推流前设置;
    1. 在反初始化 SDK 前,设置的值一直有效;
    1. 打开硬编硬解开关需后台可控,避免碰到版本升级或者硬件升级时出现硬编硬解失败的问题;
    1. 如果要单独控制某个推流通道,请参考:-requireHardwareEncoder:channelIndex:;
    1. !!!打开硬编硬解开关需后台可控,避免碰到版本升级或者硬件升级时出现硬编硬解失败的问题

Declared In

ZegoLiveRoomApi-Publisher.h

– requireHardwareEncoder:channelIndex:

为某个推流道通单独开启/关闭硬件编码。

- (bool)requireHardwareEncoder:(bool)bRequire channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

bRequire

true 开启,false 关闭。如果有调用 requireHardwareEncoder: 设置,则默认为 requireHardwareEncoder: 设置的值,否则默认为 false

index

推流通道

Return Value

true 成功,false 失败

Discussion

  • 注意:
    1. 必须在推流前设置;
    1. 在反初始化 SDK 前,设置的值一直有效;
    1. 打开硬编硬解开关需后台可控,避免碰到版本升级或者硬件升级时出现硬编硬解失败的问题;
    1. 如果想统一控制所有通道的硬编码开关,请参考:+requireHardwareEncoder:;
    1. 通过此 API 设置的值可与 requireHardwareEncoder: 设置的值相互覆盖,具体取决于其调用顺序。

Declared In

ZegoLiveRoomApi-Publisher.h

– setAVConfig:

设置发布直播(推流)视频配置

- (bool)setAVConfig:(ZegoAVConfig *)config

Parameters

config

发布直播视频配置参数(视频编码输出分辨率、视频采集分辨率、视频帧率、视频码率)

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 调用本 API 可以配置发布直播时视频采集、编码的参数。

  • 注意:

  • 1.在推流之前设置有效,在推流后设置的视频采集分辨率将无效并且不推荐在推流之后修改设置。
  • 2.推荐使用 [ZegoLiveRoomApi(Publisher) -enableTrafficControl:properties:] 流量控制,让 SDK 进行动态码率、帧率、分辨率控制。
  • 3.只适用于 UDP 推流。

Declared In

ZegoLiveRoomApi-Publisher.h

– setAppOrientation:

设置手机方向

- (bool)setAppOrientation:(UIInterfaceOrientation)orientation

Parameters

orientation

手机方向

Return Value

true 成功,false 失败

Discussion

  • 本设置用于校正输出视频朝向,默认竖屏。建议在预览和推流之前设置好方向。
  • 不建议在推流过程中旋转画面,原因:
    1. 如果刚开始为竖屏开播,此时旋转为横屏,但是分辨率仍然是竖屏的,会导致横屏后,画面放大的效果(按照等比填充的模式) 或者 上下黑边的效果(按照等比缩放的模式),除非旋转为横屏后,画面的分辨率也做修改。
    1. 直播过程中修改分辨率的话,会导致录制文件(回放)有异常,因此不建议中途旋转画面。

Declared In

ZegoLiveRoomApi-Publisher.h

– enableBeautifying:

主播方开启美颜功能

- (bool)enableBeautifying:(int)feature

Parameters

feature

美颜特性,参考 ZegoBeautifyFeature 定义。默认无美颜

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置

Declared In

ZegoLiveRoomApi-Publisher.h

– setPolishStep:

设置美颜磨皮的采样步长

- (bool)setPolishStep:(float)step

Parameters

step

采样步长,取值范围[1,16]。默认 4.0

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置。设置时需确保对应美颜特性开启

Declared In

ZegoLiveRoomApi-Publisher.h

– setPolishFactor:

设置美颜采样颜色阈值

- (bool)setPolishFactor:(float)factor

Parameters

factor

采样颜色阈值,取值范围[0,16]。默认 4.0

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置。设置时需确保对应美颜特性开启

Declared In

ZegoLiveRoomApi-Publisher.h

– setWhitenFactor:

设置美颜美白的亮度修正参数

- (bool)setWhitenFactor:(float)factor

Parameters

factor

亮度修正参数,取值范围[0,1],值越大亮度越暗。默认 0.5

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置。设置时需确保对应美颜特性开启

Declared In

ZegoLiveRoomApi-Publisher.h

– setSharpenFactor:

设置锐化参数

- (bool)setSharpenFactor:(float)factor

Parameters

factor

锐化参数,取值范围[0,2],值越大锐化越强。默认 0.2

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置。设置时需确保对应美颜特性开启

Declared In

ZegoLiveRoomApi-Publisher.h

– setFilter:

设置滤镜

- (bool)setFilter:(ZegoFilter)filter

Parameters

filter

滤镜种类,参考 ZegoFilter 定义。默认不使用滤镜

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置

Declared In

ZegoLiveRoomApi-Publisher.h

– setPreviewViewMode:

设置本地预览视图的模式

- (bool)setPreviewViewMode:(ZegoVideoViewMode)mode

Parameters

mode

视图模式。详见 ZegoVideoViewMode 定义

Return Value

true 成功,false 失败

Discussion

  • 视图模式默认为 ZegoVideoViewModeScaleAspectFill。

Declared In

ZegoLiveRoomApi-Publisher.h

– setPreviewRotation:

设置预览渲染图像的朝向

- (bool)setPreviewRotation:(int)rotate

Parameters

rotate

逆时针旋转角度

Return Value

true 成功,false 失败

Discussion

  • 注意:
  • 1.只能设置(0/90/180/270),默认为0。
  • 2.该设置只是设置预览渲染图像的朝向,不会改变推流时的图像朝向。

Declared In

ZegoLiveRoomApi-Publisher.h

– enablePreviewMirror:

是否启用预览镜像

- (bool)enablePreviewMirror:(bool)enable

Parameters

enable

true 启用,false 不启用。默认 true

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置

Declared In

ZegoLiveRoomApi-Publisher.h

– enableCaptureMirror:

是否启用摄像头采集结果镜像

- (bool)enableCaptureMirror:(bool)enable

Parameters

enable

true 启用,false 不启用。默认 false

Return Value

true 成功,false 失败

Discussion

推流时可调用本 API 进行参数配置

Declared In

ZegoLiveRoomApi-Publisher.h

– setVideoMirrorMode:

设置预览和推流镜像

- (bool)setVideoMirrorMode:(ZegoVideoMirrorMode)mode

Parameters

mode

镜像模式,详见 ZegoVideoMirrorMode

Return Value

true 成功,false 失败

Discussion

  • 预览镜像只对前置摄像头有效,后置无效。
  • 默认预览启用镜像,推流不启用镜像(即 ZegoVideoMirrorModePreviewMirrorPublishNoMirror)

Declared In

ZegoLiveRoomApi-Publisher.h

– enableRateControl:

是否开启码率控制

- (bool)enableRateControl:(bool)enable

Parameters

enable

true 启用,false 不启用。默认 false

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 注意:1. 在推流之前设置有效;
  • 只适用于 RTMP 推流。

开启后,在带宽不足的情况下码率自动适应当前带宽

Declared In

ZegoLiveRoomApi-Publisher.h

– setVideoEncoderRateControlConfig:encoderCRF:

设置编码器码率控制策略

- (void)setVideoEncoderRateControlConfig:(ZegoAPIVideoEncoderRateControlStrategy)strategy encoderCRF:(int)encoderCRF

Parameters

strategy

策略配置,参考 ZegoVideoEncoderRateControlStrategy

encoderCRF

当策略为恒定质量(ZEGOAPI_RC_VBR/ZEGOAPI_RC_CRF)有效,取值范围 [0~51],越小质量越好,但是码率会相应变大。建议取值范围 [18, 28]

Discussion

  • 注意:在推流之前设置有效。

Declared In

ZegoLiveRoomApi-Publisher.h

– setFrontCam:

是否使用前置摄像头,否则使用后置。

- (bool)setFrontCam:(bool)bFront

Parameters

bFront

是否使用前置摄像头

Return Value

true 成功,false 失败

Discussion

  • 如果使用前置摄像头,本地预览和推流都将使用前置摄像头拍摄的数据。SDK 默认使用前置摄像头。

Declared In

ZegoLiveRoomApi-Publisher.h

– enableMic:

是否开启麦克风

- (bool)enableMic:(bool)bEnable

Parameters

bEnable

true 打开,false 关闭

Return Value

true 成功,false 失败

Discussion

  • 开启麦克风后,推流数据才包含麦克风采集的音频数据。SDK 默认开启麦克风。

Declared In

ZegoLiveRoomApi-Publisher.h

– enableCamera:

是否开启视频采集

- (bool)enableCamera:(bool)bEnable

Parameters

bEnable

是否开启

Return Value

设置结果。true 成功,false 失败

Discussion

  • 开启视频采集后,预览视图才能显示预览画面,推流时才包含采集的视频数据。SDK 默认开启视频采集。

Declared In

ZegoLiveRoomApi-Publisher.h

– enableTorch:

是否开启手电筒

- (bool)enableTorch:(bool)bEnable

Parameters

bEnable

是否开启

Return Value

true 成功,false 失败

Discussion

  • 推流时可调用本 API 进行参数配置。SDK 默认关闭手电筒。

Declared In

ZegoLiveRoomApi-Publisher.h

– takePreviewSnapshot:

预览截图

- (bool)takePreviewSnapshot:(ZegoSnapshotCompletionBlock)blk

Parameters

blk

截图结果回调

Return Value

true 成功,false 失败

Discussion

  • 截图结果通过 blk 回调。

Declared In

ZegoLiveRoomApi-Publisher.h

– enableLoopback:

是否开启采集监听(即耳返)

- (bool)enableLoopback:(bool)bEnable

Parameters

bEnable

true 打开,false 关闭。默认 false

Return Value

true 成功,false 失败

Discussion

  • 开启耳返后,主播方讲话会听到自己的声音。
  • 在连接上耳麦时耳返功能才实际生效。
  • 耳返默认是在采集之后、前处理之前返回,如果需要在前处理之后返回请咨询技术支持。

Declared In

ZegoLiveRoomApi-Publisher.h

– setLoopbackVolume:

设置采集监听(耳返)音量

- (void)setLoopbackVolume:(int)volume

Parameters

volume

音量大小,取值范围 [0, 200], 默认 60

Declared In

ZegoLiveRoomApi-Publisher.h

– setCaptureVolume:

设置采集音量

- (void)setCaptureVolume:(int)volume

Parameters

volume

音量大小,取值范围 [0, 200], 默认 100

Discussion

  • SDK 采集音频时会根据该 API 设置的音量值进行音量大小的控制。开发者可在推流时调用该 API 调节音频数据的音量大小。

Declared In

ZegoLiveRoomApi-Publisher.h

– getCaptureSoundLevel

获取当前采集的音量

- (float)getCaptureSoundLevel

Return Value

当前采集的音量值

Declared In

ZegoLiveRoomApi-Publisher.h

– setWaterMarkImagePath:

设置水印的图片路径

- (void)setWaterMarkImagePath:(NSString *)filePath

Parameters

filePath

图片路径。如果是完整路径则添加 file: 前缀,如:@“file:/var/image.png";资产则添加 asset: 前缀,如:@"asset:watermark”

Discussion

推流开始前调用本 API 进行参数配置

Declared In

ZegoLiveRoomApi-Publisher.h

– setPublishWaterMarkRect:

设置水印在采集视频中的位置

- (void)setPublishWaterMarkRect:(CGRect)waterMarkRect

Parameters

waterMarkRect

水印的位置与尺寸

Discussion

左上角为坐标系原点,区域不能超过编码分辨率设置的大小

Declared In

ZegoLiveRoomApi-Publisher.h

– setPreviewWaterMarkRect:

设置水印在预览视频中的位置

- (void)setPreviewWaterMarkRect:(CGRect)waterMarkRect

Parameters

waterMarkRect

水印的位置与尺寸

Discussion

左上角为坐标系原点,区域不能超过预览视图的大小

Declared In

ZegoLiveRoomApi-Publisher.h

– setAudioBitrate:

设置主通道音频编码码率

- (bool)setAudioBitrate:(int)bitrate

Parameters

bitrate

音频编码码率(bps)

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 注意:
  • 1.可以在初始化 SDK 后任意时间设置,但不推荐在推流时动态修改码率。
  • 2.推荐使用 [ZegoLiveRoomApi(Publisher) -enableTrafficControl:properties:] 让 SDK 进行动态码率控制。
  • 3.只适用于 UDP 推流。

Declared In

ZegoLiveRoomApi-Publisher.h

– setAudioBitrate:channelIndex:

设置音频编码码率

- (bool)setAudioBitrate:(int)bitrate channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

bitrate

音频编码码率(bps)

index

推流通道

Return Value

true 表示调用成功,false 表示调用失败。

Discussion

  • 注意:
  • 1.可以在初始化 SDK 后任意时间设置,但不推荐在推流时动态修改码率。
  • 2.推荐使用 [ZegoLiveRoomApi(Publisher) -enableTrafficControl:properties:] 让 SDK 进行动态码率控制。
  • 3.只适用于 UDP 推流。

Declared In

ZegoLiveRoomApi-Publisher.h

+ setAudioDeviceMode:

设置音频设备模式

+ (void)setAudioDeviceMode:(ZegoAPIAudioDeviceMode)mode

Parameters

mode

音频设备模式,详见 ZegoAPIAudioDeviceMode

Discussion

  • 建议开发者根据情景选择合适的模式,以达到前处理的最优效果。
  • 直播场景下,推荐使用 ZEGOAPI_AUDIO_DEVICE_MODE_AUTO;
  • 实时音、视频场景下(比如教育、游戏等),推荐使用 COMMUNICATION 类 mode,可避免 SDK 内部因切换 Mode 而启动、停止音频设备等耗时操作。
  • 当业务方的用户主要在带耳机的情况下推流时,如果需要保证较好的音质效果,可使用 ZEGOAPI_AUDIO_DEVICE_MODE_GENERAL,除此情景之外,不推荐使用 GENERAL 模式,因为无法保证采集的音质效果。
  • 默认使用 ZEGOAPI_AUDIO_DEVICE_MODE_AUTO。

  • 注意:

  • 1.在推流预览前后调用均有效,调用该接口会触发设备的启动切换,建议不要频繁调用,避免不必要的开销与硬件问题。
  • 2.如果需要在使用耳机时进行音频前处理,需要调用 [ZegoLiveRoomApi(AudioIO) -enableAECWhenHeadsetDetected:] 设置 YES。
  • 3.用本接口可能导致音量模式在 通话/媒体 间切换,若媒体音量和通话音量不一致,可能导致音量变化

Declared In

ZegoLiveRoomApi-Publisher.h

– enableAEC:

是否开启软件回声消除

- (bool)enableAEC:(bool)enable

Parameters

enable

是否开启

Return Value

true 成功 false 失败

Discussion

  • 推荐结合硬件音频前处理一起使用,当硬件音频前处理效果不好、被关闭或不被支持时,可开启软件音频前处理。
  • 建议在推流前调用设置。

  • 注意:

  • 1.软件回音消除只能处理 zego SDK 播放的音频,不能处理第三方播放器播放的视频。
  • 2.如果使用音频外部采集,需要开发者自己去回声消除,该开关无效。
  • 3.iOS 默认不开启该开关,Android 是默认开启该开关。

Declared In

ZegoLiveRoomApi-Publisher.h

– setAECMode:

设置回声消除模式

- (void)setAECMode:(ZegoAPIAECMode)mode

Parameters

mode

回声消除模式

Discussion

  • 建议在推流前调用设置。默认为 ZEGOAPI_AEC_MODE_ARRGRESSIVE。

Declared In

ZegoLiveRoomApi-Publisher.h

– enableAGC:

音频采集自动增益开关。默认情况下,SDK 内部会自动判断是否需要使用 AGC。一旦调用了此函数,SDK 将不再自动判断。

- (bool)enableAGC:(bool)enable

Parameters

enable

是否开启 true开启,false关闭

Return Value

true 成功,false 失败

Discussion

  • 开启该开关后,SDK 可将太小或太大的音量处理成一定范围的音量,让整段音频的音量控制在一定范围内。在教育、视频会议等对音量稳定性有要求的场景可启用该开关。
  • 建议在推流前调用设置。默认开启。

Declared In

ZegoLiveRoomApi-Publisher.h

– SetCapturePipelineScaleMode:

设置视频采集缩放时机

- (void)SetCapturePipelineScaleMode:(ZegoAPICapturePipelineScaleMode)mode

Parameters

mode

视频采集缩放时机。详见 ZegoAPICapturePipelineScaleMode

Discussion

  • 注意:
  • 1.建议在启动本地预览和开始推流前调用,摄像头启动之后调用不会立即生效,而是在下次摄像头启动时生效。
  • 2.如果设置为先缩放(ZEGOAPI_CAPTURE_PIPELINE_SCALE_MODE_PRE),预览的分辨率就是编码分辨率;设置为后缩放(ZEGOAPI_CAPTURE_PIPELINE_SCALE_MODE_POST),预览的分辨率就是采集分辨率。
  • 默认为 ZEGOAPI_CAPTURE_PIPELINE_SCALE_MODE_PRE。

Declared In

ZegoLiveRoomApi-Publisher.h

– setLatencyMode:

设置所有推流通道的延迟模式

- (void)setLatencyMode:(ZegoAPILatencyMode)mode

Parameters

mode

延迟模式,默认 ZEGOAPI_LATENCY_MODE_NORMAL 普通延迟模式

Discussion

  • 设置 SDK 推流时音频使用的延迟模式,可以根据自己的业务场景选择最合适的延迟模式,详情可咨询 ZEGO 技术支持。

  • 注意:在InitSDK之后,推流前调用有效。

Declared In

ZegoLiveRoomApi-Publisher.h

– setAudioChannelCount:

设置所有推流通道的推流音频声道数

- (void)setAudioChannelCount:(int)count

Parameters

count

声道数,1 或 2,默认为 1(单声道)

Discussion

  • 注意:
  • 1.在InitSDK之后,推流前调用有效。
  • 2.[ZegoLiveRoomApi(Publisher) -setLatencyMode:] 中将延迟模式设置为 ZEGO_LATENCY_MODE_NORMAL、ZEGO_LATENCY_MODE_NORMAL2、ZEGO_LATENCY_MODE_LOW3 才能设置双声道。
  • 3.在移动端双声道通常需要配合音频前处理才能体现效果。

Declared In

ZegoLiveRoomApi-Publisher.h

– enableDTX:

是否开启离散音频包发送

- (void)enableDTX:(bool)enable

Parameters

enable

true 开启,推流中检测为静音的数据包不发送;false 关闭,推流中的静音数据包照常发送。默认是 false。

Discussion

  • 注意:
  • 1.推流前调用有效,连麦/混流方式调用此接口有效。
  • 2.开启离散音频包发送可以在关闭麦克风或者静音的状态下,停止音频包的发送,节省用户流量。
  • 3.如果为音频单流(非混流)转推 CDN,开启此选项将导致 CDN 在设定时间内未收到数据包认为流关闭而断开连接,所以此种情况不建议开启。
  • 4.SDK 默认关闭该特性。

See Also

Declared In

ZegoLiveRoomApi-Publisher.h

– enableVAD:

是否开启语音活动检测

- (void)enableVAD:(bool)enable

Parameters

enable

true 开启;false 关闭,默认 false

Discussion

  • 开启语音活动检测可以在检测到没有语音只有底噪声的情况下,直接发送静音包,节省用户流量。

  • 注意:

  • 1.推流前调用有效,连麦/混流方式调用此接口有效。
  • 2.可以和 [ZegoLiveRoomApi(Publisher) -enableDTX:] 配合使用。

Declared In

ZegoLiveRoomApi-Publisher.h

– enableTrafficControl:properties:

是否开启流量控制

- (void)enableTrafficControl:(bool)enable properties:(NSUInteger)properties

Parameters

enable

true 开启;false 关闭,默认 true

properties

流量控制属性 (码率、帧率、分辨率),可以多选,默认为 ZEGOAPI_TRAFFIC_CONTROL_ADAPTIVE_FPS 自适应帧率,参考 ZegoAPITrafficControlProperty 类型选项

Discussion

  • 开启流量控制开关可以使 SDK 通过动态调整音视频的码率、帧率、分辨率来适应当前网络环境,从而保证直播的流畅发布。

  • 注意:

  • 1.在推流前调用,连麦/混流方式调用此接口有效。
  • 2.当关闭流量控制时,流量控制属性将被忽略。

Declared In

ZegoLiveRoomApi-Publisher.h

– setMinVideoBitrateForTrafficControl:mode:

设置流量控制中视频码率最小值

- (void)setMinVideoBitrateForTrafficControl:(int)bitrate mode:(ZegoAPITrafficControlMinVideoBitrateMode)mode

Parameters

bitrate

视频最小码率(bps),默认为 0,即尽可能的保持视频流畅

mode

视频码率低于最小值后 SDK 的视频推流策略,默认为 ZEGOAPI_TRAFFIC_CONTROL_MIN_VIDEO_BITRATE_NO_VIDEO 停止视频发送

Discussion

  • 开启流量控制后,设置视频码率最小值可以让 SDK 当网络不足以达到发送视频最小码率时采取用户设置的策略。

  • 注意:可以在初始化之后的任意时间调用,需要开启流量控制该参数才会生效。

Declared In

ZegoLiveRoomApi-Publisher.h

– setTrafficControlFocusOn:

设置触发流量控制的关注因素

- (void)setTrafficControlFocusOn:(ZegoAPITrafficControlFocusOn)focusOn

Parameters

focusOn

触发流量控制的关注因素。选择 ZEGOAPI_TRAFFIC_CONTROL_FOCUS_ON_LOCAL_ONLY 时,只关注本地网络状况。选择 ZEGOAPI_TRAFFIC_CONTROL_FOCUS_ON_REMOTE 时,不仅关注本地网络,同时也兼顾远端网络,目前只在 1v1 场景下有效。

Discussion

  • 在初始化 SDK 之后,推流之前调用有效。如果每次推流前不重新设置,将继续使用上次的配置。在反初始化 SDK 之后失效。

  • 当 focusOn 设置为 ZEGOAPI_TRAFFIC_CONTROL_FOCUS_ON_REMOTE 时,当对方的网络拥塞时,推流端可能限定推流的码率。

  • 当通过 enableTrafficControl:properties: 接口开启了指定推流通道的流量控制后,可通过该接口控制是否因为远端网络状况差而启动流量控制。在 1v1 场景下默认是开启的。

Declared In

ZegoLiveRoomApi-Publisher.h

– enableNoiseSuppress:

是否开启软件音频采集噪声抑制

- (bool)enableNoiseSuppress:(bool)enable

Parameters

enable

是否开启

Return Value

true 成功 false 失败

Discussion

  • 推荐结合硬件音频前处理一起使用,当硬件音频前处理效果不好、被关闭或不被支持时,可开启软件音频前处理。
  • 建议在推流前调用设置。

  • 注意:

  • 1.如果使用音频外部采集,需要开发者自己去噪声抑制,该开关无效。
  • 2.默认开启该开关。

Declared In

ZegoLiveRoomApi-Publisher.h

– setNoiseSuppressMode:

设置音频采集降噪等级

- (bool)setNoiseSuppressMode:(ZegoAPIANSMode)mode

Parameters

mode

降噪等级,详见 ZegoAPIANSMode 定义

Return Value

true 成功,false 失败

Discussion

Note: 仅在 enableNoiseSuppress 为 true 时有效, 默认为 MEDIUM

Declared In

ZegoLiveRoomApi-Publisher.h

– enableTransientNoiseSuppress:

音频采集的瞬态噪声消除开关(消除键盘、敲桌子等瞬态噪声)

- (bool)enableTransientNoiseSuppress:(bool)enable

Parameters

bEnable

true 开启,false 关闭

Return Value

true 调用成功,false 调用失败

Declared In

ZegoLiveRoomApi-Publisher.h

+ setPublishQualityMonitorCycle:

设置发布直播(推流)质量监控周期

+ (void)setPublishQualityMonitorCycle:(unsigned int)timeInMS

Parameters

timeInMS

质量监控回调的时间周期,单位为毫秒,取值范围为[500,60000]。默认为 3000

Discussion

  • 注意:
  • 1.推流前调用有效。
  • 2.该设置会影响 [ZegoLivePublisherDelegate -onPublishQualityUpdate:quality:] 的回调频率。

Declared In

ZegoLiveRoomApi-Publisher.h

– setAudioEqualizerGain:index:

音效均衡器 (Deprecated: 请使用 ZegoAudioProcessing.setAudioEqualizerGain:index)

- (bool)setAudioEqualizerGain:(float)bandGain index:(int)bandIndex

Parameters

bandGain

取值范围[-15, 15]。默认值是0,如果所有频带的增益值全部为0,则会关闭EQ功能

bandIndex

取值范围[0, 9]。分别对应10个频带,其中心频率分别是[31, 62, 125, 250, 500, 1K, 2K, 4K, 8K, 16K]Hz

Return Value

true 调用成功,false 调用失败 @attention 在InitSDK之后调用有效。使用此接口前请与即构技术支持联系确认是否支持此功能。

Declared In

ZegoLiveRoomApi-Publisher.h

– muteVideoPublish:

推流时是否发送视频数据。

- (int)muteVideoPublish:(bool)mute

Parameters

mute

true 不发送(仅预览),false 发送

Return Value

0 代表设置成功成功,否则设置失败 @attention 拉流端通过 OnRemoteCameraStatusUpdate 回调监听此状态是否改变; @attention 仅拉 UDP 流时,才能接收到状态变更通知;

Declared In

ZegoLiveRoomApi-Publisher.h

– muteAudioPublish:

推流时是否发送音频数据。

- (int)muteAudioPublish:(bool)mute

Parameters

mute

true 不发送,false 发送

Return Value

0 代表设置成功成功,否则设置失败 @attention 可以通过 ZegoLiveApiAudioRecordDelegate 回调获取本地音频数据

Declared In

ZegoLiveRoomApi-Publisher.h

– enablePublishStreamAlignment:

设置所有推流是否校准网络时间,用于混流时各路流的对齐。 (Deprecated: 请使用setStreamAlignmentProperty 代替)

- (int)enablePublishStreamAlignment:(bool)enable

Parameters

enable

true开启,false关闭,默认关闭

Return Value

0 代表设置成功成功,否则设置失败 @attention 此方法依赖网络时间模块 @attention initSDK后 推流之前设置

Declared In

ZegoLiveRoomApi-Publisher.h

– setAudioCaptureShiftOnMix:

设置麦克风采集声音在混音过程中的偏移

- (void)setAudioCaptureShiftOnMix:(int)shiftMS

Parameters

shiftMS

偏移值,当 shiftMS 小于 0 时,混音时会延迟播放音;当 shiftMS 大于 0 时,混音时会延迟采集音。有效值范围[-500, 500],单位毫秒,默认值 0 @attention 初始化 SDK 之后调用有效,推流前、推流过程中调用都有效 @attention 只适用于 ktv 场景,偏移麦克风采集的人声,匹配播放器的伴奏声音 @attention 当推流主通道采用音频内部采集时,对主通道推流,主通道本地录制有效

Declared In

ZegoLiveRoomApi-Publisher.h

– enableH265EncodeFallback:

开启H.265编码自动降级到H.264编码

- (bool)enableH265EncodeFallback:(bool)enable

Parameters

enable

true - 在H.265编码失败时,自动降级到H.264编码,false - 不支持H.265编码自动降级,默认true

Return Value

true - 成功,false - 失败

Discussion

可以在推流前调用本接口

Declared In

ZegoLiveRoomApi-Publisher.h

– isVideoEncoderSupported:

获取是否支持指定编码能力

- (bool)isVideoEncoderSupported:(ZegoVideoCodecAvc)codecID

Parameters

codecID

编码ID

Return Value

true - 支持,false - 不支持

Discussion

  • 注意:
    1. 必须在初始化 SDK 后调用

可以在推流前调用本接口判断本机是否支持指定编码推流

Declared In

ZegoLiveRoomApi-Publisher.h

– isVideoEncoderSupported:codecBackend:

获取是否支持指定编码能力

- (int)isVideoEncoderSupported:(ZegoVideoCodecAvc)codecID codecBackend:(ZegoVideoCodecBackend)codecBackend

Parameters

codecID

编码ID

codecBackend

编码器的后端实现

Return Value

0 - 不支持,1 - 支持,2 - 未确定

Discussion

  • 注意:
    1. 必须在初始化 SDK 后调用

可以在推流前调用本接口判断本机是否支持指定编码推流

Declared In

ZegoLiveRoomApi-Publisher.h

– setAudioVADStableStateDelegate:

设置检测语音状态的回调

- (void)setAudioVADStableStateDelegate:(id<ZegoCheckAudioVADDelegate>)delegate

Parameters

callback

回调指针

Declared In

ZegoLiveRoomApi-Publisher.h

– enableCapturedAudioVADStableStateMonitor:

开启采集后的音频数据语音状态检测(包括麦克风采集和外部音频采集)

- (void)enableCapturedAudioVADStableStateMonitor:(bool)enable

Parameters

enable

是否开启

Discussion

Note: 检测周期是 3000 毫秒

Note: 推流前后设置都有效。预览或者推流后开始回调

Declared In

ZegoLiveRoomApi-Publisher.h

– enableCapturedAudioVADStableStateMonitor:period:

开启采集后的音频数据语音状态检测(包括麦克风采集和外部音频采集)

- (void)enableCapturedAudioVADStableStateMonitor:(bool)enable period:(int)period

Parameters

enable

是否开启

period

检测周期,单位毫秒,有效值范围 [200,10000]

Discussion

Note: 推流前后设置都有效。预览或者推流后开始回调

Declared In

ZegoLiveRoomApi-Publisher.h

– enableAudioPrepVADStableStateMonitor:

开启音频外部预处理后的音频数据的语音状态检测

- (void)enableAudioPrepVADStableStateMonitor:(bool)enable

Parameters

enable

是否开启

Discussion

Note: 检测周期是 3000 毫秒

Note: 推流前后设置都有效。预览或者推流后开始回调

Declared In

ZegoLiveRoomApi-Publisher.h

– enableAudioPrepVADStableStateMonitor:period:

开启音频外部预处理后的音频数据的语音状态检测

- (void)enableAudioPrepVADStableStateMonitor:(bool)enable period:(int)period

Parameters

enable

是否开启

period

检测周期,单位毫秒,有效值范围 [200,10000]

Discussion

Note: 推流前后设置都有效。预览或者推流后开始回调

Declared In

ZegoLiveRoomApi-Publisher.h

– recoverAudioSessionMode

在 iPadOS 14 下,基于一些系统因素,导致 AVAudioSession 的实际状态与实际参数不一致,从而出现音量变小的情况,此时,可通过调用本接口恢复音量。

- (void)recoverAudioSessionMode

Declared In

ZegoLiveRoomApi-Publisher.h

– setPreviewCropRect:originalSize:

设置预览的裁剪视图配置

- (void)setPreviewCropRect:(CGRect)rect originalSize:(CGSize)originalSize

Parameters

rect

裁剪坐标

originalSize

原始图像尺寸

Discussion

@attention 推流前或者推流过程中设置都有效,当次推流有效。

Declared In

ZegoLiveRoomApi-Publisher.h

– setVideoEncodeMode:

设置视频编码模式

- (void)setVideoEncodeMode:(ZegoAPIVideoEncodeMode)mode

Parameters

mode

视频编码模式,详见 ZegoVideoEncodeMode。默认是 ZEGOAPI_VIDEO_ENCODE_MODE_LOW_DELAY。

Discussion

Note: 推流之前设置有效,在开始推流后设置,下次推流生效。

Note: ZEGOAPI_VIDEO_ENCODE_MODE_LOW_BITRATE 模式只在使用 x264 软件编码的情况下生效,需要通过 ZEGO 的特殊渠道发包才能指定 x264 编码器。

Declared In

ZegoLiveRoomApi-Publisher.h

– setAppOrientationMode:

设置视频朝向模式

- (bool)setAppOrientationMode:(ZegoOrientationMode)mode

Parameters

mode

视频朝向模式,详见 ZegoOrientationMode,默认为 ZEGOAPI_ORIENTATION_MODE_CUSTOM。

Return Value

true 成功,false 失败 @attention 必须在预览或者推流之前调用 @attention 对所有通道生效。自适应模式在预览、拉流、混流场景下生效,不支持视频外部采集、媒体播放器、云录制、本地录制,不支持通过 CDN 推拉流场景。

Declared In

ZegoLiveRoomApi-Publisher.h

RoomExtraInfo Methods

– setRoomExtraInfoUpdateDelegate:

设置房间附加信息回调

- (bool)setRoomExtraInfoUpdateDelegate:(id<ZegoLiveRoomExtraInfoDelegate>)RoomExtraInfoDelegate

Parameters

RoomExtraInfoDelegate

遵循 ZegoLiveRoomExtraInfoDelegate 协议的代理对象

Return Value

true 成功,false 失败 @discussion

Declared In

ZegoLiveRoomApi-RoomExtraInfo.h

– setRoomExtraInfo:value:completion:

设置房间附加信息内容 登录房间成功后使用

- (bool)setRoomExtraInfo:(NSString *)key value:(NSString *)value completion:(ZegoSetRoomExtraInfoCompletionBlock)completionBlock

Parameters

key

设置的key值 不能超过 10字节, 不允许为空字符串, 一个房间内只允许1个消息类型

value

设置的value值 不能超过 128 字节, 允许为空字符串

completionBlock

回调

Return Value

true 成功,false 失败

Discussion

Declared In

ZegoLiveRoomApi-RoomExtraInfo.h

– setRoomExtraInfo:value:room:completion:

设置房间附加信息内容 登录房间成功后使用

- (bool)setRoomExtraInfo:(NSString *)key value:(NSString *)value room:(NSString *)roomId completion:(ZegoSetRoomExtraInfoCompletionBlock)completionBlock

Parameters

key

设置的key值 不能超过 10字节, 不允许为空字符串, 一个房间内只允许1个消息类型

value

设置的value值 不能超过 128 字节, 允许为空字符串

roomId

房间 ID

completionBlock

回调

Return Value

true 成功,false 失败

Discussion

Declared In

ZegoLiveRoomApi-RoomExtraInfo.h

ReplayLive Methods

+ prepareReplayLiveCapture

初始化 ReplayLive

+ (void)prepareReplayLiveCapture

Discussion

必须在 InitSDK 前调用

Declared In

ZegoLiveRoomApi-ReplayLive.h

– setReplayLiveMicVolume:

设置屏幕共享 Mic 音频音量

- (void)setReplayLiveMicVolume:(int)volume

Parameters

volume

有效范围 [0, 200],默认值 100。

Discussion

必须在 startPreview 或 startPublishing 成功后调用

Declared In

ZegoLiveRoomApi-ReplayLive.h

– setReplayLiveAppVolume:

设置屏幕共享 App 音频音量

- (void)setReplayLiveAppVolume:(int)volume

Parameters

volume

有效范围 [0, 200],默认值 100。

Discussion

必须在 startPreview 或 startPublishing 成功后调用

Declared In

ZegoLiveRoomApi-ReplayLive.h

– handleVideoInputSampleBuffer:

处理视频数据

- (void)handleVideoInputSampleBuffer:(CMSampleBufferRef)sampleBuffer

Parameters

sampleBuffer

ReplayLiveKit 返回的视频数据

Declared In

ZegoLiveRoomApi-ReplayLive.h

– handleVideoInputSampleBuffer:timeStamp:

处理视频数据

- (void)handleVideoInputSampleBuffer:(CMSampleBufferRef)sampleBuffer timeStamp:(CMTime)timeStamp

Parameters

sampleBuffer

ReplayLiveKit 返回的视频数据

time

透传给SDK的时间戳

Declared In

ZegoLiveRoomApi-ReplayLive.h

– handleAudioInputSampleBuffer:withType:

处理音频数据

- (void)handleAudioInputSampleBuffer:(CMSampleBufferRef)sampleBuffer withType:(RPSampleBufferType)sampleBufferType

Parameters

sampleBuffer

ReplayLiveKit 返回的音频数据

sampleBufferType

类型 RPSampleBufferTypeAudioApp, RPSampleBufferTypeAudioMic

Declared In

ZegoLiveRoomApi-ReplayLive.h

IM Methods

– setIMDelegate:

设置 IM 代理对象

- (bool)setIMDelegate:(id<ZegoIMDelegate>)imDelegate

Parameters

imDelegate

遵循 ZegoIMDelegate 协议的代理对象

Return Value

设置结果。true 成功,false 失败

Discussion

  • 注意:
  • 1.建议在登录房间之前设置,否则无法进行相关回调。
  • 2.需要使用点赞主播、评论、送礼、房间内成员列表变化通知等 IM 功能时,需要设置该类型代理对象。未设置代理对象,或代理对象未实现相关代理方法,会导致无法进行相关回调。
  • 3.SDK 内部弱引用该代理对象。

Declared In

ZegoLiveRoomApi-IM.h

– sendRoomMessage:type:category:completion:

房间发送广播消息

- (bool)sendRoomMessage:(NSString *)content type:(ZegoMessageType)type category:(ZegoMessageCategory)category completion:(ZegoRoomMessageCompletion)completionBlock

Parameters

content

消息内容, 小于1024 字节

type

消息类型,可以自定义。详见 ZegoMessageType

category

消息分类,可以自定义。详见 ZegoMessageCategory

completionBlock

消息发送结果回调。回调信息包含 server 下发的 messageId

Return Value

true 成功,false 失败

Discussion

Declared In

ZegoLiveRoomApi-IM.h

– sendRoomMessage:type:category:room:completion:

房间发送广播消息

- (bool)sendRoomMessage:(NSString *)content type:(ZegoMessageType)type category:(ZegoMessageCategory)category room:(NSString *)roomID completion:(ZegoRoomMessageCompletion)completionBlock

Parameters

content

消息内容, 小于1024 字节

type

消息类型,可以自定义。详见 ZegoMessageType

category

消息分类,可以自定义。详见 ZegoMessageCategory

completionBlock

消息发送结果回调。回调信息包含 server 下发的 messageId

Return Value

true 成功,false 失败

Discussion

  • 可以调用该 API 发送点赞主播、评论、送礼物等消息。

  • 注意:

  • 1.在登录房间后调用该 API 才有效。
  • 2.调用该 API 后,房间的其他用户可以通过回调 [ZegoIMDelegate -onRecvRoomMessage:messageList:] 收到该条消息。
  • 3.支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。

Declared In

ZegoLiveRoomApi-IM.h

– sendBigRoomMessage:type:category:completion:

房间发送不可靠信道的消息

- (bool)sendBigRoomMessage:(NSString *)content type:(ZegoMessageType)type category:(ZegoMessageCategory)category completion:(ZegoBigRoomMessageCompletion)completionBlock

Parameters

content

消息内容, 小于1024 字节

type

消息类型,可以自定义。详见 ZegoMessageType

category

消息分类,可以自定义。详见 ZegoMessageCategory

completionBlock

消息发送结果回调。回调信息包含 server 下发的 messageId

Return Value

true 成功,false 失败

Discussion

  • 用于高并发的场景,消息可能被丢弃,当高并发达到极限时会根据策略丢弃部分消息。

  • 注意:

  • 1.在登录房间后调用该 API 才有效。
  • 2.调用该 API 后,房间的其他用户可以通过回调 [ZegoIMDelegate -onRecvBigRoomMessage:messageList:] 收到该条消息。
  • 3.不支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。多房间模式下请使用 [ZegoLiveRoomApi sendBigRoomMessage:type:category:room:completion:] 指定房间 ID。

Declared In

ZegoLiveRoomApi-IM.h

– sendBigRoomMessage:type:category:room:completion:

房间发送不可靠信道的消息

- (bool)sendBigRoomMessage:(NSString *)content type:(ZegoMessageType)type category:(ZegoMessageCategory)category room:(NSString *)roomID completion:(ZegoBigRoomMessageCompletion)completionBlock

Parameters

content

消息内容, 小于1024 字节

type

消息类型,可以自定义。详见 ZegoMessageType

category

消息分类,可以自定义。详见 ZegoMessageCategory

completionBlock

消息发送结果回调。回调信息包含 server 下发的 messageId

Return Value

true 成功,false 失败

Discussion

  • 用于高并发的场景,消息可能被丢弃,当高并发达到极限时会根据策略丢弃部分消息。

  • 注意:

  • 1.在登录房间后调用该 API 才有效。
  • 2.调用该 API 后,房间的其他用户可以通过回调 [ZegoIMDelegate -onRecvBigRoomMessage:messageList:] 收到该条消息。
  • 3.支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。

Declared In

ZegoLiveRoomApi-IM.h

Player Methods

– setPlayerDelegate:

设置直播观众相关信息通知的回调,以接收拉流事件回调

- (bool)setPlayerDelegate:(id<ZegoLivePlayerDelegate>)playerDelegate

Parameters

playerDelegate

实现了 ZegoLivePlayerDelegate 协议的代理对象,以接收拉流事件

Return Value

true 设置成功,false 设置失败

Discussion

  • 注意:
    1. 在调用初始化 SDK 接口之后、拉流接口 startPlayingStream 之前设置。

Declared In

ZegoLiveRoomApi-Player.h

– updatePlayDecryptKey:key:

设置拉流解密密钥(只用于拉流之后更新密钥)

- (void)updatePlayDecryptKey:(NSString *)streamID key:(NSData *)key

Parameters

streamID

播放流 ID

key

解密密钥(支持16/24/32字节)

Declared In

ZegoLiveRoomApi-Player.h

– startPlayingStream:inView:

播放多媒体流

- (bool)startPlayingStream:(NSString *)streamID inView:(ZEGOView *)view

Parameters

streamID

需要播放的用户流 ID

view

用来渲染播放视频的视图,设置为空时不显示视频,只播放音频

Return Value

true 调用成功,false 调用失败

Discussion

  • 注意:
    1. 调用此 API 可播放直播流,必须在调用初始化 SDK 接口之后调用。
    1. 调用成功后,等待 [ZegoLivePlayerDelegate -onPlayStateUpdate:streamID:] 回调。
    1. 如果有收到 [ZegoRoomDelegate -onDisconnect:roomID:] 回调,则不会再收到 [ZegoLivePlayerDelegate -onPlayStateUpdate:streamID:] 回调。

Declared In

ZegoLiveRoomApi-Player.h

– startPlayingStream:inView:params:

播放多媒体流

- (bool)startPlayingStream:(NSString *)streamID inView:(ZEGOView *)view params:(NSString *)params

Parameters

streamID

需要播放的用户流 ID

view

用来渲染播放视频的视图,设置为空时不显示视频,只播放音频

params

拉流参数

Return Value

true 调用成功,false 调用失败

Discussion

  • 注意:
    1. 调用此 API可播放直播流,必须在调用初始化 SDK 接口之后调用。
    1. 调用成功后,等待 [ZegoLivePlayerDelegate -onPlayStateUpdate:streamID:] 回调。
    1. 如果有收到 [ZegoRoomDelegate -onDisconnect:roomID:] 回调,则不会再收到 [ZegoLivePlayerDelegate -onPlayStateUpdate:streamID:] 回调。

Declared In

ZegoLiveRoomApi-Player.h

– startPlayingStream:inView:extraInfo:

根据用户配置的多媒体流附加信息,播放多媒体流

- (bool)startPlayingStream:(NSString *)streamID inView:(ZEGOView *)view extraInfo:(ZegoAPIStreamExtraPlayInfo *)info

Parameters

streamID

需要播放的用户流 ID

view

用来渲染播放视频的视图,设置为空时不显示视频,只播放音频

info

多媒体流附加信息

Return Value

true 调用成功,false 调用失败

Discussion

  • 注意:
    1. 调用此 API可播放直播流,必须在调用初始化 SDK 接口之后调用。
    1. 调用成功后,等待 [ZegoLivePlayerDelegate -onPlayStateUpdate:streamID:] 回调。

Declared In

ZegoLiveRoomApi-Player.h

– startPlayingStreamWithParams:

播放多媒体流

- (bool)startPlayingStreamWithParams:(ZegoAPIPlayStreamParams *)params

Parameters

params

拉流参数, 详见 ZegoAPIPlayStreamParams

Return Value

true 调用成功,false 调用失败

Discussion

  • 注意:
    1. 调用此 API 可播放直播流,必须在调用初始化 SDK 接口之后调用。
    1. 调用成功后,等待 [ZegoLivePlayerDelegate -onPlayStateUpdate:streamID:] 回调。
    1. 如果有收到 [ZegoRoomDelegate -onDisconnect:roomID:] 回调,则不会再收到 [ZegoLivePlayerDelegate -onPlayStateUpdate:streamID:] 回调。

Declared In

ZegoLiveRoomApi-Player.h

– updatePlayView:ofStream:

更新播放视图

- (bool)updatePlayView:(ZEGOView *)view ofStream:(NSString *)streamID

Parameters

view

播放视图

streamID

流 ID

Return Value

true 调用成功,false 调用失败

Discussion

  • 注意:
    1. 调用 startPlayingStream 播放流成功以后,如果要切换流播放 View 或者停止显示流画面,调用该 API 变更。

Declared In

ZegoLiveRoomApi-Player.h

– updatePlayView:ofStream:alphaBlend:

更新播放视图

- (bool)updatePlayView:(ZEGOView *)view ofStream:(NSString *)streamID alphaBlend:(BOOL)alphaBlend

Parameters

view

播放视图

streamID

流 ID

alphaBlend

是否开启 alpha 通道混合渲染

Return Value

true 调用成功,false 调用失败

Discussion

  • 注意:
    1. 调用 startPlayingStream 播放流成功以后,如果要切换流播放 View 或者停止显示流画面,调用该 API 变更。

Declared In

ZegoLiveRoomApi-Player.h

– stopPlayingStream:

停止播放流

- (bool)stopPlayingStream:(NSString *)streamID

Parameters

streamID

要停止播放的流 ID

Return Value

true 调用成功,false 调用失败

Discussion

  • 主播停止流推后,会通过 [ZegoRoomDelegate -onStreamUpdated:streams:roomID:] 通知房间内用户流删除,用户需要调用此 API 停止播放流。停止播放流后,注意移除相关的UI控件

Declared In

ZegoLiveRoomApi-Player.h

– setPlayStreamFocus:

设置拉流优先级的权重,被置为 focus 的流,优先保证其质量。

- (bool)setPlayStreamFocus:(NSString *)streamID

Parameters

streamID

流 ID,当为空时,恢复初始状态,所有流的权重相同。

Return Value

true: 设置成功, false 设置失败 @attention 默认所有流的权重相同。 @attention 只能设置一路流是高优先级的,以最后设置的为准。 @attention 在本地网络不好的时候,保证focus流的同时,可能造成其他的卡顿更多。 @attention 设置高优先级的流需要在开始拉流后设置,流停止之后自动恢复初始状态,所有流的权重相同。

Declared In

ZegoLiveRoomApi-Player.h

– setAudioMixMode:ofStreams:

设置多路混音时突出的拉流ID,当有多路流同时发声,将突出streamIDs中的流。

- (bool)setAudioMixMode:(ZegoAPIAudioMixMode)mixMode ofStreams:(NSArray<NSString*> *)streamIDs

Parameters

mixMode

ZEGOAPI_AUDIO_MIX_MODE_RAW时关闭该功能,ZEGOAPI_AUDIO_MIX_MODE_FOCUSED时开启

streamIDs

需要突出的拉流ID,最多4个

Return Value

true: 设置成功, false 设置失败 @attention 任意时刻调用有效,退出房间重置状态。 @attention 当mixMode为ZEGOAPI_AUDIO_MIX_MODE_FOCUSED 且 num为0时,自动挑选突出最多4路流。 @attention 当mixMode为ZEGOAPI_AUDIO_MIX_MODE_FOCUSED 且 所有设置的流都没在拉时,自动挑选突出最多4路流。

Declared In

ZegoLiveRoomApi-Player.h

– enablePlayVirtualStereo:angle:ofStream:

设置拉的流的虚拟立体声源相对于本端的角度,可以实现空间音频效果。

- (bool)enablePlayVirtualStereo:(bool)enable angle:(int)angle ofStream:(NSString *)streamID

Parameters

enable

true 开启,false 关闭,默认关闭

angle

虚拟立体声中声源的角度,范围为0~360,90为正前方,0对应正右方

streamID

拉流ID

Return Value

true: 设置成功, false 设置失败

Declared In

ZegoLiveRoomApi-Player.h

– requestJoinLive:

请求连麦

- (bool)requestJoinLive:(ZegoResponseBlock)blk

Parameters

blk

回调 block

Return Value

true 成功,false 失败

Discussion

不支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。

多房间模式下请使用 [ZegoLiveRoomApi requestJoinLive:responseBlock:],指定房间 ID。

观众请求连麦后,主播会收到 [ZegoLivePublisherDelegate -onJoinLiveRequest:fromUserID:fromUserName:roomID:] 回调。连麦成功后,结果通过 blk 回调

Declared In

ZegoLiveRoomApi-Player.h

– requestJoinLive:responseBlock:

请求连麦

- (bool)requestJoinLive:(NSString *)roomID responseBlock:(ZegoResponseBlock)blk

Parameters

roomID

房间 ID

blk

回调 block

Return Value

true 成功,false 失败

Discussion

多房间模式下,必须指定房间 ID,否则调用失败。

观众请求连麦后,主播会收到 [ZegoLivePublisherDelegate -onJoinLiveRequest:fromUserID:fromUserName:roomID:] 回调。连麦成功后,结果通过 blk 回调

Declared In

ZegoLiveRoomApi-Player.h

– respondInviteJoinLiveReq:result:

回应主播端的邀请连麦请求

- (bool)respondInviteJoinLiveReq:(int)seq result:(int)rspResult

Parameters

seq

连麦请求序列号,标识当次连麦请求

rspResult

回应,0 为同意

Return Value

true 成功,false 失败

Discussion

不支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。

多房间模式下请使用 [ZegoLiveRoomApi respondInviteJoinLiveReq:result:room:],指定房间 ID。

一般在 [ZegoLivePlayerDelegate -onInviteJoinLiveRequest:fromUserID:fromUserName:roomID:] 中调用本 API 回应邀请连麦请求

Declared In

ZegoLiveRoomApi-Player.h

– respondInviteJoinLiveReq:result:room:

回应主播端的邀请连麦请求

- (bool)respondInviteJoinLiveReq:(int)seq result:(int)rspResult room:(NSString *)roomID

Parameters

seq

连麦请求序列号,标识当次连麦请求

rspResult

回应,0 为同意

Return Value

true 成功,false 失败

Discussion

多房间模式下,必须指定房间 ID,否则调用失败。

一般在 [ZegoLivePlayerDelegate -onInviteJoinLiveRequest:fromUserID:fromUserName:roomID:] 中调用本 API 回应邀请连麦请求

Declared In

ZegoLiveRoomApi-Player.h

+ requireHardwareDecoder:

硬件解码

+ (bool)requireHardwareDecoder:(bool)bRequire

Parameters

bRequired

true 打开,false 关闭。默认 false

Return Value

true 成功,false 失败

Discussion

  • 注意:
    1. 如果要打开,必须在调用拉流接口 startPlayingStream 前设置。
    1. 打开硬编硬解开关需后台可控,避免碰到版本升级或者硬件升级时出现硬编硬解失败的问题。

Declared In

ZegoLiveRoomApi-Player.h

– requireHardwareDecoder:ofStream:

为指定拉流通道开启/关闭硬件解码。

- (bool)requireHardwareDecoder:(bool)bRequire ofStream:(NSString *)streamID

Parameters

streamID

拉流 ID

enable

true 打开,false 关闭。默认 false

Return Value

true 成功,false 失败

Discussion

  • 注意:
    1. 必须在调用拉流前设置;
    1. 在反初始化 SDK 前,设置的值一直有效;
    1. 打开硬编硬解开关需后台可控,避免碰到版本升级或者硬件升级时出现硬编硬解失败的问题;
    1. 指定流的值会与全局值相互覆盖,具体取决于其调用顺序。

Declared In

ZegoLiveRoomApi-Player.h

– enableSpeaker:

(声音输出)扬声器开关

- (bool)enableSpeaker:(bool)bEnable

Parameters

bEnable

true 不静音,false 静音。默认 true

Return Value

true 成功,false 失败

Discussion

  • 注意:
    1. 设置为关闭后,默认扬声器和耳机均无声音输出。

Declared In

ZegoLiveRoomApi-Player.h

– setBuiltInSpeakerOn:

默认扬声器开关

- (bool)setBuiltInSpeakerOn:(bool)bOn

Parameters

bOn

true 打开,false 关闭。默认 true

Return Value

true 成功,false 失败

Discussion

  • 注意:
  • 1.设置为关闭后,扬声器无声音,耳机仍有声音输出。

Declared In

ZegoLiveRoomApi-Player.h

– setPlayVolume:

设置拉流的播放音量

- (bool)setPlayVolume:(int)volume

Parameters

volume

音量大小, 取值范围[0, 200], 默认 100

Return Value

true 成功, false 失败

Discussion

  • 注意:
    1. 必须在拉流 startPlayingStream 后调用才有效。
    1. 播放直播过程中可通过此 API 调整播放音量。

Declared In

ZegoLiveRoomApi-Player.h

– setPlayVolume:ofStream:

设置指定拉流的播放音量

- (bool)setPlayVolume:(int)volume ofStream:(NSString *)streamID

Parameters

volume

音量大小, 取值范围[0, 200], 默认 100

streamID

流ID. ID为空时, 统一设置所有拉流的播放音量

Return Value

true 成功, false 失败

Discussion

  • 注意:
    1. 必须在拉流 startPlayingStream 后调用才有效,每次拉流都需要重新设置。
    1. 播放直播过程中可通过此 API 调整播放音量。

Declared In

ZegoLiveRoomApi-Player.h

– getSoundLevelOfStream:

获取当前播放视频的实时音量

- (float)getSoundLevelOfStream:(NSString *)streamID

Parameters

streamID

播放流 ID

Return Value

视频的音量值

Discussion

  • 注意:
    1. 必须在拉流 startPlayingStream 后调用才有效。
  • 2.播放直播时通过此 API 获取当前音量。

Declared In

ZegoLiveRoomApi-Player.h

– setViewMode:ofStream:

设置观看直播的 View 的模式

- (bool)setViewMode:(ZegoVideoViewMode)mode ofStream:(NSString *)streamID

Parameters

mode

模式,参考 ZegoVideoViewMode 定义。默认 ZegoVideoVideModeScaleAspectFit

streamID

播放流 ID

Return Value

true 成功,false 失败

Discussion

  • 注意:
    1. 必须在拉流 startPlayingStream 后调用才有效,每次拉流都需要重新设置。
    1. 一般在流播放、流新增、全屏切换等其他流尺寸可能变化的场合时调用。

Declared In

ZegoLiveRoomApi-Player.h

– setViewRotation:ofStream:

设置播放渲染朝向

- (bool)setViewRotation:(int)rotate ofStream:(NSString *)streamID

Parameters

rotate

逆时针旋转角度(0/90/180/270)。默认 0

streamID

播放流 ID

Return Value

true 成功,false 失败

Discussion

  • 注意:
    1. 必须在拉流 startPlayingStream 后调用才有效,每次拉流都需要重新设置。
    1. 一般用于全屏切换、旋转设备时调用,调整播放方向。

Declared In

ZegoLiveRoomApi-Player.h

– enableViewMirror:ofStream:

开启播放镜像

- (bool)enableViewMirror:(bool)enable ofStream:(NSString *)streamID

Parameters

enable

true 开启, false 关闭, 默认 false

streamID

播放流 ID

Return Value

true 成功,false 失败

Discussion

  • 注意:
    1. 必须在拉流 startPlayingStream 后调用才有效, 每次拉流都需要重新设置

Declared In

ZegoLiveRoomApi-Player.h

– setViewBackgroundColor:ofStream:

设置视频控件的背景颜色

- (bool)setViewBackgroundColor:(int)color ofStream:(NSString *)streamID

Parameters

color

颜色,取值为0x00RRGGBB

streamID

播放流 ID

Return Value

true 成功,false 失败

Discussion

  • 注意:
    1. 必须在拉流 startPlayingStream 后调用才有效, 每次拉流都需要重新设置

Declared In

ZegoLiveRoomApi-Player.h

– takeSnapshotOfStream:withCompletionBlock:

对观看直播视图进行截图

- (bool)takeSnapshotOfStream:(NSString *)streamID withCompletionBlock:(ZegoSnapshotCompletionBlock)blk

Parameters

streamID

需要截图的流 ID

Return Value

true 调用成功,false 调用失败

Discussion

  • 注意:
    1. 必须在拉流 startPlayingStream 后调用才有效。
    1. 截图成功后,通过回调 blk 返回结果。

Declared In

ZegoLiveRoomApi-Player.h

– activateAudioPlayStream:active:

拉流是否接收音频数据

- (int)activateAudioPlayStream:(NSString *)streamID active:(bool)active

Parameters

streamID

播放流 ID

active

true 接收,false 不接收

Return Value

0 成功,否则失败

Discussion

  • 注意:
    1. 可以在拉流 startPlayingStream 之前或者之后调用, 每次拉流都需要重新设置

Declared In

ZegoLiveRoomApi-Player.h

– activateAllAudioPlayStream:

拉流是否接收音频数据

- (int)activateAllAudioPlayStream:(bool)active

Parameters

active

true 接收,false 不接收

Return Value

0 成功,否则失败

Discussion

  • 注意:
    1. 可以在initSDK之后调用,支持拉流时设置
    1. 本地用户会取消或恢复接收所有远端用户的音频流,包括在调用该方法后新加入房间的用户的音频流
    1. 必需此接口和activateAudioPlayStream接口均未禁止音频数据,才会接收音频数据
    1. 此接口不影响activateAudioPlayStream接口的生命周期

Declared In

ZegoLiveRoomApi-Player.h

– activateVideoPlayStream:active:

拉流是否接收视频数据

- (int)activateVideoPlayStream:(NSString *)streamID active:(bool)active

Parameters

streamID

播放流 ID

active

true 接收,false 不接收

Return Value

0 成功,否则失败

Discussion

  • 注意:
    1. 可以在拉流 startPlayingStream 之前或者之后调用, 每次拉流都需要重新设置

Declared In

ZegoLiveRoomApi-Player.h

– activateVideoPlayStream:active:videoLayer:

拉流是否接收视频数据

- (int)activateVideoPlayStream:(NSString *)streamID active:(bool)active videoLayer:(VideoStreamLayer)videoLayer

Parameters

streamID

播放流 ID

active

true 接收,false 不接收

videoLayer

视频分层类型

Return Value

0 成功,否则失败

Discussion

  • 注意:
    1. 可以在拉流 startPlayingStream 之前或者之后调用, 每次拉流都需要重新设置
    1. 当推流方开启了分层编码后,拉流方可以通过该 API 在适当时机选择拉取大分辨率图层或小分辨率图层。

Declared In

ZegoLiveRoomApi-Player.h

– activateAllVideoPlayStream:

拉流是否接收视频数据

- (int)activateAllVideoPlayStream:(bool)active

Parameters

active

true 接收,false 不接收

Return Value

0 成功,否则失败

Discussion

  • 注意:
    1. 可以在initSDK之后调用,支持拉流时设置
    1. 本地用户会取消或恢复接收所有远端用户的视频流,包括在调用该方法后新加入房间的用户的视频流
    1. 必需此接口和activateVideoPlayStream接口均未禁止视频数据,才会接收视频数据
    1. 此接口不影响activateVideoPlayStream接口的生命周期

Declared In

ZegoLiveRoomApi-Player.h

– setRecvMinBufferLevel:maxBufferLevel:streamID:

设置拉流播放缓存自适应调整的区间范围(上下限)

- (bool)setRecvMinBufferLevel:(int)minBufferLevel maxBufferLevel:(int)maxBufferLevel streamID:(NSString *)streamID

Parameters

minBufferLevel

缓存自适应区间下限, 单位毫秒. 当 minBufferLevel <= 0 表示未设置下限.

maxBufferLevel

缓存自适应区间上限, 单位毫秒. 当 maxBufferLevel <= 0 表示未设置上限. 当设置的上限超过4000时,会取值4000.

streamID

流 ID

Return Value

true 设置成功, false 设置失败

Discussion

  • 注意:
    1. 调用时机为拉流前或者拉流中, 每次拉流都需要重新设置
    1. 上下限在未设置时, 内部默认区间范围 [0, 4000]
    1. 当设置的上限小于下限时,会自动将上限取值为下限

Declared In

ZegoLiveRoomApi-Player.h

+ setPlayQualityMonitorCycle:

设置拉流质量监控周期

+ (void)setPlayQualityMonitorCycle:(unsigned int)timeInMS

Parameters

timeInMS

时间周期,单位为毫秒,取值范围为(500, 60000)。默认为 3000

Discussion

  • 注意:
    1. 设置该 API 后,[ZegoLivePlayerDelegate -onPlayQualityUpdate:stream:videoFPS:videoBitrate:] 将会按照设置值的频率回调。

Declared In

ZegoLiveRoomApi-Player.h

– enableSelectedAudioRecord:sampleRate:

音频录制开关

- (bool)enableSelectedAudioRecord:(unsigned int)mask sampleRate:(int)sampleRate

Discussion

Warning: Deprecated,请使用 enableSelectedAudioRecord:

在启动推流或者启动本地录制(MediaRecorder)的时候,才能开启音频录制

Declared In

ZegoLiveRoomApi-Player.h

– enableSelectedAudioRecord:

开/关音频录制功能

- (bool)enableSelectedAudioRecord:(ZegoAPIAudioRecordConfig)config

Parameters

config

配置信息, 详细请参考 struct ZegoAPIAudioRecordConfig

Return Value

true 调用成功,false 调用失败

Discussion

  • 注意:
  • 1.必须在初始化 SDK 后调用。
  • 2.开启音频录制后,App 需要设置音频录制代理(setAudioRecordDelegate:),才能通过 -onAudioRecord:sampleRate:numOfChannels:bitDepth:type: 获取 SDK 抛出的音频数据。
  • 3.在启动推流或者启动本地录制(MediaRecorder)之后,才能开启音频录制。

Declared In

ZegoLiveRoomApi-Player.h

– setAudioRecordDelegate:

设置音频录制代理对象

- (void)setAudioRecordDelegate:(id<ZegoLiveApiAudioRecordDelegate>)audioRecordDelegate

Parameters

audioRecordDelegate

音频录制回调

Discussion

  • 开启音频录制功能,需要设置代理对象。未设置代理对象,或对象设置错误,可能导致 App 无法正常收到 -onAudioRecord:sampleRate:numOfChannels:bitDepth:type: 回调。

Declared In

ZegoLiveRoomApi-Player.h

+ getMaxPlayChannelCount

获取 SDK 支持的最大同时播放流数

+ (int)getMaxPlayChannelCount

Return Value

最大支持播放流数

Declared In

ZegoLiveRoomApi-Player.h

+ enableCheckPoc:

帧顺序检测开关

+ (void)enableCheckPoc:(bool)enable

Parameters

enable

true 检测帧顺序,不支持B帧; false 不检测帧顺序,支持B帧,可能出现短暂花屏

Discussion

  • 注意:
  • 1.必须在初始化 SDK 前调用

Declared In

ZegoLiveRoomApi-Player.h

– getUserByStreamID:

获取发布指定流 ID 的发布者信息

- (ZegoUser *)getUserByStreamID:(NSString *)streamID

Parameters

streamID

流 ID

Return Value

ZegoUser 发布者信息

Discussion

@attention 需保证该流已经存在

Declared In

ZegoLiveRoomApi-Player.h

– isVideoDecoderSupported:

获取是否支持指定解码能力

- (bool)isVideoDecoderSupported:(ZegoVideoCodecAvc)codecID

Parameters

codecId

解码ID

Return Value

true - 支持,false - 不支持

Discussion

  • 注意:
    1. 必须在初始化 SDK 后调用

可以在拉流前调用本接口判断本机是否支持指定解码器

Declared In

ZegoLiveRoomApi-Player.h

– isVideoDecoderSupported:codecBackend:

获取是否支持指定解码能力

- (int)isVideoDecoderSupported:(ZegoVideoCodecAvc)codecID codecBackend:(ZegoVideoCodecBackend)codecBackend

Parameters

codecBackend

解码器后端实现

codecId

解码ID

Return Value

0 - 不支持,1 - 支持,2 - 未确定

Discussion

  • 注意:
    1. 必须在初始化 SDK 后调用

可以在拉流前调用本接口判断本机是否支持指定解码器

Declared In

ZegoLiveRoomApi-Player.h

– setViewCropRect:originalSize:streamID:

设置拉流的裁剪视图配置

- (void)setViewCropRect:(CGRect)rect originalSize:(CGSize)originalSize streamID:(NSString *)streamID

Parameters

rect

裁剪坐标

originalSize

原始图像尺寸

streamID

流 ID

Discussion

@attention 拉流前或者拉流过程中设置都有效,当次拉流有效。

Declared In

ZegoLiveRoomApi-Player.h

– setPlayStreamsAlignmentProperty:

设置拉流是否校准网络时间,用于有对齐属性的各路流进行时间对齐

- (int)setPlayStreamsAlignmentProperty:(int)alignment

Parameters

alignment

1 开启,0 关闭

Return Value

0 表示成功,-1 为失败 @attention InitSDK成功后才能调用本接口,可实时更改生效。

Declared In

ZegoLiveRoomApi-Player.h

– updatePlayToken:streamID:

拉流时设置的Token即将过期,调用该 API 变更。

- (bool)updatePlayToken:(NSData *)token streamID:(NSString *)streamID

Parameters

token

设置的 Token

streamID

播放流 ID

Return Value

true 表示成功,false 表示失败 @attention 拉流之后调用,若拉流时未设 appid,该接口无效。

Declared In

ZegoLiveRoomApi-Player.h

– initVideoSuperResolution

初始化超分

- (void)initVideoSuperResolution

Discussion

Note: 调用时机:必须在{@link #initSDK}后调用。 @attention 该操作为耗时操作,需要初始化才能开启超分,建议不要频繁调用。

Declared In

ZegoLiveRoomApi-Player.h

– enableVideoSuperResolution:enable:

开启视频画面超分

- (void)enableVideoSuperResolution:(NSString *)streamID enable:(BOOL)enable

Parameters

streamID

当前需要开启或关闭超分的流的 ID。

enable

是否开启超分,默认不开启。

Discussion

  • 注意:

  • 1.视频超分仅对拉流视频画面有效,必须在{@link #initSDK}后调用;
  • 2.该功能需要特殊编包,请联系ZEGO技术支持;
  • 3.该功能会额外耗费系统资源,为了保证用户体验,ZEGO限制只能对一条流开启超分辨率,且该条流的原始分辨率不建议超过 640 × 360;
  • 4.通过 [ZegoLivePlayerDelegate -onPlayerVideoSuperResolutionUpdate:state:errorCode:] 回调超分状态。

Declared In

ZegoLiveRoomApi-Player.h

– uninitVideoSuperResolution

反初始化超分

- (void)uninitVideoSuperResolution

Discussion

Note: 调用时机:必须在{@link #initSDK}后调用。 @attention 一般需要销毁 SDK 后超分占用的资源才会释放,该操作可以提前释放超分占用的资源。

Declared In

ZegoLiveRoomApi-Player.h

AudioIO Methods

– enableAECWhenHeadsetDetected:

耳机插入状态下是否使用回声消除

- (void)enableAECWhenHeadsetDetected:(bool)enable

Parameters

enable

是否启用

Discussion

  • 建议在初始化 SDK 后,推流前调用设置。

  • 注意:

  • 1.iOS 的 SDK 默认使用开启

Declared In

ZegoLiveRoomApi-AudioIO.h

– setAudioPrepCallback:config:

设置音频前(3A处理后、耳返前)处理函数, 并开启或关闭音频前处理

- (void)setAudioPrepCallback:(void ( *) ( const AVE : : AudioFrame & inFrame , AVE : : AudioFrame & outFrame ))callback config:(AVE : : ExtPrepSet)config

Parameters

callback

采样数据回调,inFrame 为 SDK 采集的音频数据,outFrame 为开发者处理后应该返回给 SDK 的数据,outFrame.buffer已经分配内存,outFrame.bufLen 所指向的内存由 SDK 负责申请和销毁,用户处理后回写的数据的采样率不超过48K。

config

预处理音频数据的采样率等设置参数,详见 struct ExtPrepSet。

Discussion

当开发者需要自处理音频数据时采用此接口,一般是实现特殊功能如变声;SDK 会在 callback 参数中抛出采集的音频数据,开发者从其中获取音频数据进行变声等处理,最后将处理后的数据回传给 SDK。 注意: 1.此 API 必须在initSDK后,在调用预览,拉流,推流,启动播放器接口前设置。 2.SDK 已经针对采集的音频数据进行了回声消除、噪声抑制等处理,通常情况下,开发者无需再重复处理。 3.使用该回调进行音频处理影响耳返数据。

Declared In

ZegoLiveRoomApi-AudioIO.h

– setAudioPrepAfterLoopbackCallback:config:

设置音频(耳返后)处理函数, 并开启或关闭音频处理

- (void)setAudioPrepAfterLoopbackCallback:(void ( *) ( const AVE : : AudioFrame & inFrame , AVE : : AudioFrame & outFrame ))callback config:(AVE : : ExtPrepSet)config

Parameters

callback

采样数据回调,inFrame 为 SDK 采集的音频数据,outFrame 为开发者处理后应该返回给 SDK 的数据,outFrame.buffer已经分配内存,outFrame.bufLen 所指向的内存由 SDK 负责申请和销毁,用户处理后回写的数据的采样率不超过48K。

config

预处理音频数据的采样率等设置参数,详见 struct ExtPrepSet。

Discussion

当开发者需要自处理音频数据时采用此接口,一般是实现特殊功能如变声;SDK 会在 callback 参数中抛出采集的音频数据,开发者从其中获取音频数据进行变声等处理,最后将处理后的数据回传给 SDK。 注意: 1.此 API 必须在初始化 SDK 后推流前调用。 2.SDK 已经针对采集的音频数据进行了回声消除、噪声抑制等处理,通常情况下,开发者无需再重复处理。 3.使用该回调进行音频处理不影响耳返数据。

Declared In

ZegoLiveRoomApi-AudioIO.h

– setAudioPostpCallback:config:

设置音频后处理函数

- (void)setAudioPostpCallback:(void ( *) ( const char *streamID , const AVE : : AudioFrame & inFrame , AVE : : AudioFrame & outFrame ))callback config:(AVE : : ExtPostpSet)config

Parameters

callback

拉流音频数据回调,streamID 标明当前的音频数据属于哪路流,inFrame 为 SDK 拉取的某路流的音频数据,outFrame 为开发者处理后应该返回给 SDK 的数据。

config

预处理音频数据的采样率等设置参数,详见 struct ExtPostpSet。 @attention 当回调时,streamID 为空时,表明这是混音后的音频数据

Discussion

当开发者需要自处理拉取的音频数据时采用此接口,一般是实现特殊功能如变声;SDK 会在 callback 参数中抛出拉取的某路流的音频数据,开发者从其中获取音频数据进行处理,最后将处理后的数据回传给 SDK,outFrame.buffer已经分配内存,outFrame.bufLen 所指向的内存由 SDK 负责申请和销毁,用户处理后回写的数据的采样率不超过48K。 注意: 1.此 API 必须在initSDK后,在调用预览,拉流,推流,启动播放器接口前设置。

Declared In

ZegoLiveRoomApi-AudioIO.h

– enableAudioPostp:streamID:

开启或关闭音频后处理

- (void)enableAudioPostp:(bool)enable streamID:(NSString *)streamID

Parameters

enable

true: 开启音频后处理;false: 开关音频后处理

streamID

流 ID, 当 streamID 为空串时,表明需要混音后的音频数据

Discussion

当开发者需要自处理拉取的音频数据时采用此接口,一般是实现特殊功能如变声;SDK 会在 callback 参数中抛出拉取的某路流的音频数据,开发者从其中获取音频数据进行处理,最后将处理后的数据回传给 SDK。 注意: 1.streamID不为空串时,此 API 必须在拉流后调用,本次拉流有效

Declared In

ZegoLiveRoomApi-AudioIO.h

– setAlignedAudioAuxDataDelegate:

设置对齐后的混音数据回调

- (void)setAlignedAudioAuxDataDelegate:(id<ZegoAudioAuxDataDelegate>)delegate

Parameters

delegate

遵循 ZegoAudioAuxDataDelegate 协议的代理对象。

Discussion

  1. 必须在 initSDK 后,[startPublishingStream]、[startRecord] 前调用
  2. 仅在使用 enableAlignedAudioAuxData 开启了抛出对齐后的混音数据特性且 [startPublishingStream] 或 [startRecord] 才会回调
  3. 如果想要从此回调中获取媒体播放器的音频混音数据,需要调用 [enableAux] 或媒体播放器类型为 Aux

Declared In

ZegoLiveRoomApi-AudioIO.h

– enableAlignedAudioAuxData:config:

开启/关闭抛出对齐后的混音数据特性

- (void)enableAlignedAudioAuxData:(bool)enable config:(ZegoAPIAudioAuxDataConfig *)config

Parameters

enable

true: 开启;false: 关闭

config

音频配置

Discussion

  1. 需要在初始化 SDK 之后调用

Declared In

ZegoLiveRoomApi-AudioIO.h