ZegoLiveRoomApi Class Reference

Inherits from NSObject
Declared in ZegoLiveRoomApi.h

+ version

ZegoLiveRoom SDK 版本号

+ (NSString *)version

Return Value

版本号

Discussion

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

Declared In

ZegoLiveRoomApi.h

+ version2

版本号2

+ (NSString *)version2

Return Value

版本号2

Declared In

ZegoLiveRoomApi.h

+ 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

建议在初始化 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

日志大小,单位为字节。取值范围[510241024, 10010241024]

Discussion

在初始化 SDK 之前调用有效

Declared In

ZegoLiveRoomApi.h

+ setLogDir:size:subFolder:

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

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

Parameters

logDir

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

size

日志大小,单位为字节。取值范围[510241024, 10010241024]

subFolder

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

Discussion

在初始化 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:

设置房间配置信息

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

Parameters

audienceCreateRoom

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

userStateUpdate

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

Discussion

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

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

Declared In

ZegoLiveRoomApi.h

– setCustomToken:

设置自定义token信息

- (void)setCustomToken:(NSString *)thirdPartyToken

Parameters

thirdPartyToken

第三方传入的token

Discussion

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

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

Declared In

ZegoLiveRoomApi.h

– setRoomMaxUserCount:

设置房间最大在线人数

- (void)setRoomMaxUserCount:(unsigned int)userCount

Parameters

userCount

最大人数

Discussion

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

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

– logoutRoom

退出房间

- (bool)logoutRoom

Return Value

true 成功,false 失败

Discussion

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

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% 可达。

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

+ 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

– getVideoDeviceList

获取视频设备列表

- (NSArray<ZegoAPIDeviceInfo*> *)getVideoDeviceList

Return Value

设备信息列表

Declared In

ZegoLiveRoomApi.h

– enableMixSystemPlayout:

系统声卡声音采集开关

- (void)enableMixSystemPlayout:(bool)enable

Parameters

enable

是否打开

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

– 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

“play_nodata_abort”, bool value, default: false,设置拉流时没拉到数据是否终止拉流,设置为false表示不终止,设置为true表示终止,拉流之前调用有效

“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. 停止预览时,是否清除最后一帧内容

Declared In

ZegoLiveRoomApi.h

– setLogInfoDelegate:

设置 LogInfo 代理对象

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

Parameters

delegate

代理对象

Return Value

true 成功, false 失败

Declared In

ZegoLiveRoomApi.h