ZegoLiveRoomApi(DuoPublisher) Category Reference

Declared in ZegoLiveRoomApi-Publisher2.h

– 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

– 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

– 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.为了满足客户的秒开播需求,该接口可以在调用登录房间接口后同步调用,如果登录房间失败,则直播发布也失败。
  • 4.[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.为了满足客户的秒开播需求,该接口可以在调用登录房间接口后同步调用,如果登录房间失败,则直播发布也失败。
  • 4.[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

– 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,目前 key 仅支持 kPublishCustomTarget ,value 为用户自定义的转推 RTMP 地址。参考 zego-api-defines-oc.h 中相关定义

index

推流 channel Index

Discussion

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

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

– 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

– setVideoKeyFrameInterval:channelIndex:

设置视频关键帧间隔

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

Parameters

intervalSecond

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

index

推流使用的推流通道

Return Value

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

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher2.h

– setAppOrientation:channelIndex:

设置手机方向

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

Parameters

orientation

手机方向

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher2.h

– 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

– setPreviewViewMode:channelIndex:

设置本地预览视图的模式

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

Parameters

mode

视图模式。详见 ZegoVideoViewMode 定义

index

推流 channel Index

Return Value

true 成功,false 失败

Discussion

  • 视图模式默认为 ZegoVideoViewModeScaleAspectFill。

Declared In

ZegoLiveRoomApi-Publisher2.h

– setPreviewRotation:channelIndex:

设置预览渲染图像的朝向

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

Parameters

rotate

逆时针旋转角度

Return Value

true 成功,false 失败

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher2.h

– 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

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

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

– 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

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

Declared In

ZegoLiveRoomApi-Publisher2.h

– setPreviewWaterMarkRect:channelIndex:

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

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

Parameters

waterMarkRect

水印的位置与尺寸

index

推流 channel Index

Discussion

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

Declared In

ZegoLiveRoomApi-Publisher2.h

– setMediaSideFlags:onlyAudioPublish:channelIndex:

发送媒体次要信息开关

- (void)setMediaSideFlags:(bool)start onlyAudioPublish:(bool)onlyAudioPublish channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

start

true 开启, false 关闭

onlyAudioPublish

true 纯音频直播,不传输视频数据, false 音视频直播,传输视频数据

index

推流 channel Index

Discussion

onlyAudioPublish 开关在 start 开关开启时才生效

Declared In

ZegoLiveRoomApi-Publisher2.h

– setMediaSideFlags:onlyAudioPublish:mediaInfoType:seiSendType:channelIndex:

发送媒体次要信息开关

- (void)setMediaSideFlags:(bool)start onlyAudioPublish:(bool)onlyAudioPublish mediaInfoType:(int)mediaInfoType seiSendType:(int)seiSendType channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

start

true 开启, false 关闭

onlyAudioPublish

true 纯音频直播,不传输视频数据, false 音视频直播,传输视频数据

mediaInfoType

请参考 MediaInfoType 定义,建议使用 SeiZegoDefined

seiSendType

请参考 SeiSendType 定义,此参数只对发送SEI时有效,当mediaInfoType为 SideInfoZegoDefined 时此参数无效,当发送SEI时建议使用 SeiSendInVideoFrame

index

推流 channel Index

Discussion

onlyAudioPublish 开关在 start 开关开启时才生效

Declared In

ZegoLiveRoomApi-Publisher2.h

– sendMediaSideInfo:dataLen:packet:channelIndex:

发送媒体次要信息

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

Parameters

inData

媒体次要信息数据

dataLen

数据长度

packet

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

index

推流 channel Index

Discussion

主播端开启媒体次要信息开关,并调用此 API 发送媒体次要信息后,观众端在 [ZegoLiveRoomApi (Player) -setMediaSideCallback:] 设置的回调中获取媒体次要信息

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_swencoder_usage=camera”, 等号后面值的类型要看下面每一项的定义 @attention “zego_channel_param_key_video_swencoder_usage”, string value: camera|screen,设置编码时使用场景模式,仅使用 OpenH264 编码时有效 @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