ZegoLiveRoomApi(Publisher) Category Reference

Declared in ZegoLiveRoomApi-Publisher.h

Overview

推流相关功能分类

– setPublisherDelegate:

设置 Publisher 代理对象

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

Parameters

publisherDelegate

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

Return Value

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

Discussion

Declared In

ZegoLiveRoomApi-Publisher.h

– setVideoCodecId:ofChannel:

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

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

Parameters

codecId

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

channel

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

Return Value

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

Discussion

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

  • 注意:

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

Declared In

ZegoLiveRoomApi-Publisher.h

– 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:] 回调中收到流新增通知。
  • 3.为了满足客户的秒开播需求,该接口可以在调用登录房间接口后同步调用,如果登录房间失败,则直播发布也失败。

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:] 回调中收到流新增通知。
  • 3.为了满足客户的秒开播需求,该接口可以在调用登录房间接口后同步调用,如果登录房间失败,则直播发布也失败。

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

推流配置信息,目前 key 仅支持 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

主播端通过 [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

主播邀请连麦成功后,被邀请的观众收到 [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 失败

Declared In

ZegoLiveRoomApi-Publisher.h

+ requireHardwareEncoder:

硬件编码开关

+ (bool)requireHardwareEncoder:(bool)bRequire

Parameters

bRequire

true 开启,false 关闭。默认 false

Return Value

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

Discussion

  • 注意:
  • 1.在推流之前设置有效。
  • 2.硬编硬解开关最好后台可控,避免碰到版本升级或者硬件升级时出现硬编硬解失败的问题。

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 进行动态码率、帧率、分辨率控制。

Declared In

ZegoLiveRoomApi-Publisher.h

– setAppOrientation:

设置手机方向

- (bool)setAppOrientation:(UIInterfaceOrientation)orientation

Parameters

orientation

手机方向

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– enableBeautifying:

主播方开启美颜功能

- (bool)enableBeautifying:(int)feature

Parameters

feature

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

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– setPolishStep:

设置美颜磨皮的采样步长

- (bool)setPolishStep:(float)step

Parameters

step

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

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– setPolishFactor:

设置美颜采样颜色阈值

- (bool)setPolishFactor:(float)factor

Parameters

factor

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

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– setWhitenFactor:

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

- (bool)setWhitenFactor:(float)factor

Parameters

factor

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

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– setSharpenFactor:

设置锐化参数

- (bool)setSharpenFactor:(float)factor

Parameters

factor

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

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– setFilter:

设置滤镜

- (bool)setFilter:(ZegoFilter)filter

Parameters

filter

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

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– setPreviewViewMode:

设置本地预览视图的模式

- (bool)setPreviewViewMode:(ZegoVideoViewMode)mode

Parameters

mode

视图模式。详见 ZegoVideoViewMode 定义

Return Value

true 成功,false 失败

Discussion

  • 视图模式默认为 ZegoVideoViewModeScaleAspectFill。

Declared In

ZegoLiveRoomApi-Publisher.h

– setPreviewRotation:

设置预览渲染图像的朝向

- (bool)setPreviewRotation:(int)rotate

Parameters

rotate

逆时针旋转角度

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– enablePreviewMirror:

是否启用预览镜像

- (bool)enablePreviewMirror:(bool)enable

Parameters

enable

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

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– enableCaptureMirror:

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

- (bool)enableCaptureMirror:(bool)enable

Parameters

enable

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

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– setVideoMirrorMode:

设置预览和推流镜像

- (bool)setVideoMirrorMode:(ZegoVideoMirrorMode)mode

Parameters

mode

镜像模式,详见 ZegoVideoMirrorMode

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– enableRateControl:

是否开启码率控制

- (bool)enableRateControl:(bool)enable

Parameters

enable

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

Return Value

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

Discussion

  • 注意:
  • 1.在推流之前设置有效。
  • 2.不推荐使用此接口,可使用 [ZegoLiveRoomApi(Publisher) -setVideoEncoderRateControlConfig:encoderCRF:] 调整编码器的码率控制策略。

Declared In

ZegoLiveRoomApi-Publisher.h

– setVideoEncoderRateControlConfig:encoderCRF:

设置编码器码率控制策略

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

Parameters

strategy

码率控制策略,默认 ZEGOAPI_RC_CBR 恒定码率

encoderCRF

当策略为恒定质量(ZEGOAPI_RC_VBR/ZEGOAPI_RC_CRF)有效,取值范围 [0,51],越小质量越好,但是码率会相应变大。默认 23,建议取值范围 [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, 100),默认 80

Declared In

ZegoLiveRoomApi-Publisher.h

– setCaptureVolume:

设置采集音量

- (void)setCaptureVolume:(int)volume

Parameters

volume

音量大小,取值(0, 100)。默认 100

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– muteAux:

混音静音开关

- (bool)muteAux:(bool)bMute

Parameters

bMute

true 表示静音,false 表示恢复音量。

Return Value

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

Discussion

Note: 1. 当开启静音后,主播端将听不到混音内容,观众端依然能听到混音声音。

  • 2.此 API 可以在混音中的任意时间调用,取决于用户需求。

Warning: Deprecated,请使用 ZegoAudioAux 的 muteAux:

See Also

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

推流开始前调用本 API 进行参数配置。左上角为坐标系原点,区域不能超过编码分辨率设置的大小

Declared In

ZegoLiveRoomApi-Publisher.h

– setPreviewWaterMarkRect:

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

- (void)setPreviewWaterMarkRect:(CGRect)waterMarkRect

Parameters

waterMarkRect

水印的位置与尺寸

Discussion

推流开始前调用本 API 进行参数配置。左上角为坐标系原点,区域不能超过预览视图的大小

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 进行动态码率控制。

Declared In

ZegoLiveRoomApi-Publisher.h

+ setAudioDeviceMode:

设置音频设备模式

+ (void)setAudioDeviceMode:(ZegoAPIAudioDeviceMode)mode

Parameters

mode

音频设备模式,详见 ZegoAPIAudioDeviceMode

Discussion

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

  • 注意:

  • 1.必须在 Init SDK 前调用才能生效。
  • 2.如果需要在使用耳机时进行音频前处理,需要调用 [ZegoLiveRoomApi(AudioIO) -enableAECWhenHeadsetDetected:] 设置 YES,该情况只在音频设备模式为 ZEGOAPI_AUDIO_DEVICE_MODE_AUTO,ZEGOAPI_AUDIO_DEVICE_MODE_COMMUNICATION 下才有效。

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:

音频采集自动增益开关

- (bool)enableAGC:(bool)enable

Parameters

enable

是否开启

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– setMediaSideFlags:onlyAudioPublish:

发送媒体次要信息开关

- (void)setMediaSideFlags:(bool)start onlyAudioPublish:(bool)onlyAudioPublish

Parameters

start

true 开启媒体次要信息传输, false 关闭媒体次要信息传输。start 为 true 时,onlyAudioPublish 开关才有效

onlyAudioPublish

true 纯音频直播,不传输视频数据,false 音视频直播,传输视频数据。默认为 false。如果本次只有音频直播,必须将 onlyAudioPublish 置为 true,此时会由音频来驱动次要信息的传输,同时忽略视频流传输

Discussion

初始化 SDK 后,开始推流前调用。

Declared In

ZegoLiveRoomApi-Publisher.h

– sendMediaSideInfo:dataLen:packet:

发送媒体次要信息

- (void)sendMediaSideInfo:(const unsigned char *)inData dataLen:(int)dataLen packet:(bool)packet

Parameters

inData

需要传输的音视频次要信息数据,外部输入

dataLen

传入的 inData 长度,不能大于 1000 Bytes

packet

是否外部已经打包好包头,true 已打包, false 未打包。

Discussion

主播端开启媒体次要信息开关,开始推流后调用。调用此 API 发送媒体次要信息后,观众端在 [ZegoLiveRoomApi (Player) -setMediaSideCallback:] 设置的回调中获取媒体次要信息。不需要发送媒体次要信息时,可调用 [ZegoLiveRoomApi (Publisher) setMediaSideFlags:false onlyAudioPublish:false] 关闭通道

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 技术支持。

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

Declared In

ZegoLiveRoomApi-Publisher.h

– setAudioChannelCount:

设置推流音频声道数

- (void)setAudioChannelCount:(int)count

Parameters

count

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

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– setAuxVolume:

设置混音音量

- (void)setAuxVolume:(int)volume

Parameters

volume

音量值范围 [0,100],默认为 50

Discussion

  • 注意:
  • 1.可以在初始化 SDK 之后任意时刻调用。
  • 2.SetAuxVolume 的工作逻辑都是基于对引擎的输入输出数据进行处理,即对输入 SDK 的音频数据的音量大小进行设置,与进行混音的推流设备的系统音量没有关系。
  • 3.采集混音需要的音频数据时采用 general 模式,一般是媒体音量;采用 communication 模式,一般是通话音量;采用 auto 模式,连麦时会变成通话音量。

Warning: Deprecated,请使用 [ZegoAudioAux -setAuxVolume:]

Declared In

ZegoLiveRoomApi-Publisher.h

– enableDTX:

静音后不发送音频包(离散音频包发送)

- (void)enableDTX:(bool)enable

Parameters

enable

true 开启,false 关闭,默认 true

Discussion

  • 开启离散音频包发送可以在关闭麦克风或者静音的状态下,停止音频包的发送,节省用户流量。

  • 注意:

  • 1.推流前调用有效,连麦/混流方式调用此接口有效。
  • 2.可以和 [ZegoLiveRoomApi(Publisher) -enableVAD:] 配合使用。
  • 3.如果为音频单流(非混流)转推 CDN,开启此选项将导致 CDN 在设定时间内未收到数据包认为流关闭而断开连接,所以此种情况不建议开启。

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

– enableNoiseSuppress:

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

- (bool)enableNoiseSuppress:(bool)enable

Parameters

enable

是否开启

Return Value

true 成功 false 失败

Discussion

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

  • 注意:

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

Declared In

ZegoLiveRoomApi-Publisher.h

– setNoiseSuppressMode:

设置音频采集降噪等级

- (bool)setNoiseSuppressMode:(ZegoAPIANSMode)mode

Parameters

mode

降噪等级,详见 ZegoAPIANSMode 定义

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

+ setPublishQualityMonitorCycle:

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

+ (void)setPublishQualityMonitorCycle:(unsigned int)timeInMS

Parameters

timeInMS

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

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher.h

– 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