ZegoLiveRoomApi Class Reference
Inherits from | NSObject |
---|---|
Declared in | ZegoLiveRoomApi.h |
Other Methods
+ version
ZegoLiveRoom SDK 版本号
+ (NSString *)version
Return Value
版本号
Discussion
开发者使用本 API 获取 SDK 版本号
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 失败
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 失败
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
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
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
- 本设置用于校正输出视频朝向,默认竖屏。建议在预览和推流之前设置好方向。
- 不建议在推流过程中旋转画面,原因:
- 如果刚开始为竖屏开播,此时旋转为横屏,但是分辨率仍然是竖屏的,会导致横屏后,画面放大的效果(按照等比填充的模式) 或者 上下黑边的效果(按照等比缩放的模式),除非旋转为横屏后,画面的分辨率也做修改。
- 直播过程中修改分辨率的话,会导致录制文件(回放)有异常,因此不建议中途旋转画面。
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.该设置只是设置预览渲染图像的朝向,不会改变推流时的图像朝向。
See Also
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
- 注意:使用 Publisher 功能前需要设置代理对象,用于接收 ZegoLivePublisherDelegate 回调方法。
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:] 回调中收到流新增通知。
- 如果有收到 [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:] 回调中收到流新增通知。
- 如果有收到 [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
- 注意:
- 必须在推流前设置;
- 在反初始化 SDK 前,设置的值一直有效;
- 打开硬编硬解开关需后台可控,避免碰到版本升级或者硬件升级时出现硬编硬解失败的问题;
- 如果要单独控制某个推流通道,请参考:-requireHardwareEncoder:channelIndex:;
- !!!打开硬编硬解开关需后台可控,避免碰到版本升级或者硬件升级时出现硬编硬解失败的问题
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
- 注意:
- 必须在推流前设置;
- 在反初始化 SDK 前,设置的值一直有效;
- 打开硬编硬解开关需后台可控,避免碰到版本升级或者硬件升级时出现硬编硬解失败的问题;
- 如果想统一控制所有通道的硬编码开关,请参考:+requireHardwareEncoder:;
- 通过此 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
- 本设置用于校正输出视频朝向,默认竖屏。建议在预览和推流之前设置好方向。
- 不建议在推流过程中旋转画面,原因:
- 如果刚开始为竖屏开播,此时旋转为横屏,但是分辨率仍然是竖屏的,会导致横屏后,画面放大的效果(按照等比填充的模式) 或者 上下黑边的效果(按照等比缩放的模式),除非旋转为横屏后,画面的分辨率也做修改。
- 直播过程中修改分辨率的话,会导致录制文件(回放)有异常,因此不建议中途旋转画面。
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.该设置只是设置预览渲染图像的朝向,不会改变推流时的图像朝向。
See Also
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.用本接口可能导致音量模式在 通话/媒体 间切换,若媒体音量和通话音量不一致,可能导致音量变化
See Also
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.默认开启该开关。
See Also
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
- 注意:
- 必须在初始化 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
- 注意:
- 必须在初始化 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 推拉流场景。
See Also
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
- 注意:
- 1.不支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。多房间模式下请使用 [ZegoLiveRoomApi setRoomExtraInfo:value:room:completion:] 指定房间 ID。
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
- 注意:
- 1.支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。
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
可以调用该 API 发送点赞主播、评论、送礼物等消息。
注意:
- 1.在登录房间后调用该 API 才有效。
- 2.调用该 API 后,房间的其他用户可以通过回调 [ZegoIMDelegate -onRecvRoomMessage:messageList:] 收到该条消息。
- 3.不支持多房间模式(通过 [ZegoLiveRoomApi setRoomMode:] 开启)。多房间模式下请使用 [ZegoLiveRoomApi sendRoomMessage:type:category:room:completion:] 指定房间 ID。
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
- 注意:
- 在调用初始化 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
- 注意:
- 调用此 API 可播放直播流,必须在调用初始化 SDK 接口之后调用。
- 调用成功后,等待 [ZegoLivePlayerDelegate -onPlayStateUpdate:streamID:] 回调。
- 如果有收到 [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
- 注意:
- 调用此 API可播放直播流,必须在调用初始化 SDK 接口之后调用。
- 调用成功后,等待 [ZegoLivePlayerDelegate -onPlayStateUpdate:streamID:] 回调。
- 如果有收到 [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
- 注意:
- 调用此 API可播放直播流,必须在调用初始化 SDK 接口之后调用。
- 调用成功后,等待 [ZegoLivePlayerDelegate -onPlayStateUpdate:streamID:] 回调。
Declared In
ZegoLiveRoomApi-Player.h
– startPlayingStreamWithParams:
播放多媒体流
- (bool)startPlayingStreamWithParams:(ZegoAPIPlayStreamParams *)params
Parameters
params |
拉流参数, 详见 ZegoAPIPlayStreamParams |
---|
Return Value
true 调用成功,false 调用失败
Discussion
- 注意:
- 调用此 API 可播放直播流,必须在调用初始化 SDK 接口之后调用。
- 调用成功后,等待 [ZegoLivePlayerDelegate -onPlayStateUpdate:streamID:] 回调。
- 如果有收到 [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
- 注意:
- 调用 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
- 注意:
- 调用 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
- 注意:
- 如果要打开,必须在调用拉流接口 startPlayingStream 前设置。
- 打开硬编硬解开关需后台可控,避免碰到版本升级或者硬件升级时出现硬编硬解失败的问题。
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
- 注意:
- 必须在调用拉流前设置;
- 在反初始化 SDK 前,设置的值一直有效;
- 打开硬编硬解开关需后台可控,避免碰到版本升级或者硬件升级时出现硬编硬解失败的问题;
- 指定流的值会与全局值相互覆盖,具体取决于其调用顺序。
Declared In
ZegoLiveRoomApi-Player.h
– enableSpeaker:
(声音输出)扬声器开关
- (bool)enableSpeaker:(bool)bEnable
Parameters
bEnable |
true 不静音,false 静音。默认 true |
---|
Return Value
true 成功,false 失败
Discussion
- 注意:
- 设置为关闭后,默认扬声器和耳机均无声音输出。
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
- 注意:
- 必须在拉流 startPlayingStream 后调用才有效。
- 播放直播过程中可通过此 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
- 注意:
- 必须在拉流 startPlayingStream 后调用才有效,每次拉流都需要重新设置。
- 播放直播过程中可通过此 API 调整播放音量。
Declared In
ZegoLiveRoomApi-Player.h
– getSoundLevelOfStream:
获取当前播放视频的实时音量
- (float)getSoundLevelOfStream:(NSString *)streamID
Parameters
streamID |
播放流 ID |
---|
Return Value
视频的音量值
Discussion
- 注意:
- 必须在拉流 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
- 注意:
- 必须在拉流 startPlayingStream 后调用才有效,每次拉流都需要重新设置。
- 一般在流播放、流新增、全屏切换等其他流尺寸可能变化的场合时调用。
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
- 注意:
- 必须在拉流 startPlayingStream 后调用才有效,每次拉流都需要重新设置。
- 一般用于全屏切换、旋转设备时调用,调整播放方向。
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
- 注意:
- 必须在拉流 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
- 注意:
- 必须在拉流 startPlayingStream 后调用才有效, 每次拉流都需要重新设置
Declared In
ZegoLiveRoomApi-Player.h
– takeSnapshotOfStream:withCompletionBlock:
对观看直播视图进行截图
- (bool)takeSnapshotOfStream:(NSString *)streamID withCompletionBlock:(ZegoSnapshotCompletionBlock)blk
Parameters
streamID |
需要截图的流 ID |
---|
Return Value
true 调用成功,false 调用失败
Discussion
- 注意:
- 必须在拉流 startPlayingStream 后调用才有效。
- 截图成功后,通过回调 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
- 注意:
- 可以在拉流 startPlayingStream 之前或者之后调用, 每次拉流都需要重新设置
Declared In
ZegoLiveRoomApi-Player.h
– activateAllAudioPlayStream:
拉流是否接收音频数据
- (int)activateAllAudioPlayStream:(bool)active
Parameters
active |
true 接收,false 不接收 |
---|
Return Value
0 成功,否则失败
Discussion
- 注意:
- 可以在initSDK之后调用,支持拉流时设置
- 本地用户会取消或恢复接收所有远端用户的音频流,包括在调用该方法后新加入房间的用户的音频流
- 必需此接口和activateAudioPlayStream接口均未禁止音频数据,才会接收音频数据
- 此接口不影响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
- 注意:
- 可以在拉流 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
- 注意:
- 可以在拉流 startPlayingStream 之前或者之后调用, 每次拉流都需要重新设置
- 当推流方开启了分层编码后,拉流方可以通过该 API 在适当时机选择拉取大分辨率图层或小分辨率图层。
Declared In
ZegoLiveRoomApi-Player.h
– activateAllVideoPlayStream:
拉流是否接收视频数据
- (int)activateAllVideoPlayStream:(bool)active
Parameters
active |
true 接收,false 不接收 |
---|
Return Value
0 成功,否则失败
Discussion
- 注意:
- 可以在initSDK之后调用,支持拉流时设置
- 本地用户会取消或恢复接收所有远端用户的视频流,包括在调用该方法后新加入房间的用户的视频流
- 必需此接口和activateVideoPlayStream接口均未禁止视频数据,才会接收视频数据
- 此接口不影响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
- 注意:
- 调用时机为拉流前或者拉流中, 每次拉流都需要重新设置
- 上下限在未设置时, 内部默认区间范围 [0, 4000]
- 当设置的上限小于下限时,会自动将上限取值为下限
Declared In
ZegoLiveRoomApi-Player.h
+ setPlayQualityMonitorCycle:
设置拉流质量监控周期
+ (void)setPlayQualityMonitorCycle:(unsigned int)timeInMS
Parameters
timeInMS |
时间周期,单位为毫秒,取值范围为(500, 60000)。默认为 3000 |
---|
Discussion
- 注意:
- 设置该 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
- 注意:
- 必须在初始化 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
- 注意:
- 必须在初始化 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
- 必须在 initSDK 后,[startPublishingStream]、[startRecord] 前调用
- 仅在使用 enableAlignedAudioAuxData 开启了抛出对齐后的混音数据特性且 [startPublishingStream] 或 [startRecord] 才会回调
- 如果想要从此回调中获取媒体播放器的音频混音数据,需要调用 [enableAux] 或媒体播放器类型为 Aux
Declared In
ZegoLiveRoomApi-AudioIO.h
– enableAlignedAudioAuxData:config:
开启/关闭抛出对齐后的混音数据特性
- (void)enableAlignedAudioAuxData:(bool)enable config:(ZegoAPIAudioAuxDataConfig *)config
Parameters
enable |
true: 开启;false: 关闭 |
---|---|
config |
音频配置 |
Discussion
- 需要在初始化 SDK 之后调用
Declared In
ZegoLiveRoomApi-AudioIO.h