ZegoLivePublisherDelegate Protocol Reference

Conforms to NSObject
Declared in ZegoLiveRoomApi-Publisher.h

Overview

Publisher 代理

– onPublishStateUpdate:streamID:streamInfo: required method

发布直播(推流)状态更新

- (void)onPublishStateUpdate:(int)stateCode streamID:(NSString *)streamID streamInfo:(NSDictionary<NSString*,NSArray<NSString*> *> *)info

Parameters

stateCode

发布直播状态码,详见 ZegoErrorCode,0 为推流操作成功,否则为操作失败

streamID

发布直播的流ID,在用户同时推多路流的情况下需要以此判断本次回调表示的是哪一路流的状态更新

info

CDN 转推相关信息

Discussion

  • 用户调用发布直播接口后,会通过该 API 通知用户发布直播操作的状态更新,在发布直播状态变化后就会回调,即可能会回调多次。

  • 注意:

  • 2.当回调失败,发布直播就已经停止,无需调用停止发布直播接口,SDK 不会自动重试发布直播,需要调用方重新尝试发布直播,或者提示用户发布失败执行其他业务逻辑。
  • 3.用户手动调用停止发布直播接口、房间登录回调错误的情况下,该 API 不会回调。
  • 4.info 目前的结构为 @{kZegoRtmpUrlListKey:@[RtmpUrlList], kZegoHlsUrlListKey:@[HlsUrlList], kZegoFlvUrlListKey:@[FlvUrlList]}。

Declared In

ZegoLiveRoomApi-Publisher.h

– onJoinLiveRequest:fromUserID:fromUserName:roomID:

收到连麦请求

- (void)onJoinLiveRequest:(int)seq fromUserID:(NSString *)userId fromUserName:(NSString *)userName roomID:(NSString *)roomID

Parameters

seq

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

userId

来源用户 ID

userName

来源用户名

roomID

房间 ID

Discussion

观众调用 [ZegoLiveRoomApi (Player) -requestJoinLive] 申请连麦后,主播端会收到本通知

Declared In

ZegoLiveRoomApi-Publisher.h

– onPublishQualityUpdate:stream:videoFPS:videoBitrate:

发布直播(推流)质量更新

- (void)onPublishQualityUpdate:(int)quality stream:(NSString *)streamID videoFPS:(double)fps videoBitrate:(double)kbs

Parameters

quality

发布直播质量,[0,3]分别对应优、良、中、差

streamID

发布直播的流ID,在用户同时推多路流的情况下需要以此判断本次回调表示的是哪一路流的状态更新

fps

发布直播的帧率(fps)

kbs

发布直播的码率(kbps)

Discussion

  • 可以在此 API 中获取当前发布直播的质量,加以处理。

  • 注意:

  • 1.此接口目前不建议使用,推荐使用 [ZegoLivePublisherDelegate -onPublishQualityUpdate:quality:] 获取质量。
  • 2.在发布直播后,此 API 就会以 [ZegoLiveRoomApi(Publisher) -setPublishQualityMonitorCycle:] 接口设置的回调间隔持续回调。

Declared In

ZegoLiveRoomApi-Publisher.h

– onPublishQualityUpdate:quality:

发布直播(推流)质量更新

- (void)onPublishQualityUpdate:(NSString *)streamID quality:(ZegoApiPublishQuality)quality

Parameters

streamID

streamID 发布直播的流ID,在用户同时推多路流的情况下需要以此判断本次回调表示的是哪一路流的状态更新

quality

发布直播质量结构体

Discussion

  • 可以在此 API 中获取当前发布直播的质量,加以处理。

  • 注意:在发布直播后,此 API 就会以 [ZegoLiveRoomApi(Publisher) -setPublishQualityMonitorCycle:] 设置的回调间隔持续回调。

Declared In

ZegoLiveRoomApi-Publisher.h

– onCaptureVideoSizeChangedTo:

采集视频的宽度和高度变化通知

- (void)onCaptureVideoSizeChangedTo:(CGSize)size

Parameters

size

视频大小

Discussion

  • 发布直播成功后,当视频尺寸变化时,发布者会收到此通知

Declared In

ZegoLiveRoomApi-Publisher.h

– onCaptureVideoSizeChangedTo:channelIndex:

采集视频的宽度和高度变化通知

- (void)onCaptureVideoSizeChangedTo:(CGSize)size channelIndex:(ZegoAPIPublishChannelIndex)index

Parameters

size

视频大小

index

推流通道

Discussion

  • 发布直播成功后,当视频尺寸变化时,发布者会收到此通知

Declared In

ZegoLiveRoomApi-Publisher.h

– onRelayCDNStateUpdate:streamID:

发布直播转推 CDN 状态信息更新

- (void)onRelayCDNStateUpdate:(NSArray<ZegoAPIStreamRelayCDNInfo*> *)statesInfo streamID:(NSString *)streamID

Parameters

statesInfo

转推CDN状态信息数组

streamID

发布直播的流ID,在用户同时推多路流的情况下需要以此判断本次回调表示的是哪一路流的状态更新

Discussion

  • 可以通过此 API 获取当前发布的直播转推 CDN 的状态更新。

Declared In

ZegoLiveRoomApi-Publisher.h

– onCaptureVideoFirstFrame

采集视频的首帧通知

- (void)onCaptureVideoFirstFrame

Discussion

  • 可以通过此 API 获取 SDK 采集到视频首帧的时间,可以在此 API 中移除预览占位图,然后设置预览视图。
  • 开始预览和开始发布直播均会触发采集。

Declared In

ZegoLiveRoomApi-Publisher.h

– onCaptureVideoFirstFrame:

采集视频的首帧通知

- (void)onCaptureVideoFirstFrame:(ZegoAPIPublishChannelIndex)index

Parameters

index

推流使用的推流通道

Discussion

  • 可以通过此 API 获取 SDK 采集到视频首帧的时间,可以在此 API 中移除预览占位图,然后设置预览视图。

  • 注意:开始预览和开始发布直播均会触发采集。

Declared In

ZegoLiveRoomApi-Publisher.h

– onPreviewVideoFirstFrame:

预览视频的首帧通知

- (void)onPreviewVideoFirstFrame:(ZegoAPIPublishChannelIndex)index

Parameters

index

推流使用的推流通道

Discussion

  • 可以通过此 API 获取 SDK 预览视频首帧的时间,开启外部采集后,收到第一帧数据会回调。

Declared In

ZegoLiveRoomApi-Publisher.h

– onSendLocalAudioFirstFrame:

推流音频首帧通知

- (void)onSendLocalAudioFirstFrame:(ZegoAPIPublishChannelIndex)index

Parameters

index

推流使用的推流通道

Discussion

  • 可以通过此 API 获取 SDK 推流音频首帧的时间。

  • 说明:推流成功后、enableMicDevice、muteAudioPublish后可能收到该回调。

Declared In

ZegoLiveRoomApi-Publisher.h

– onSendLocalVideoFirstFrame:

推流视频首帧通知

- (void)onSendLocalVideoFirstFrame:(ZegoAPIPublishChannelIndex)index

Parameters

index

推流使用的推流通道

Discussion

  • 可以通过此 API 获取 SDK 推流视频首帧的时间。

  • 说明:推流成功后、enableCamera、muteVideoPublish后可能收到该回调。

Declared In

ZegoLiveRoomApi-Publisher.h

– onCaptureAudioFirstFrame

采集音频的首帧通知

- (void)onCaptureAudioFirstFrame

Discussion

  • 可以通过此 API 获取 SDK 采集到音频首帧的时间。

  • 注意:开始预览和开始发布直播均会触发采集。

Declared In

ZegoLiveRoomApi-Publisher.h

– onLocalCameraStatusUpdate:status:reason:

本地摄像头状态通知

- (void)onLocalCameraStatusUpdate:(ZegoAPIPublishChannelIndex)index status:(int)status reason:(int)reason

Parameters

index

通道

status

status 状态

reason

reason 原因

Declared In

ZegoLiveRoomApi-Publisher.h

– onVideoEncoder:error:channel:

视频编码器错误通知

- (void)onVideoEncoder:(ZegoVideoCodecAvc)codecID error:(int)errorCode channel:(ZegoAPIPublishChannelIndex)index

Parameters

errorCode

错误码, 详见 zego-api-defines-oc.h 中 ZegoAPICodecError 的定义

index

推流使用的推流通道

Discussion

@param codecID

Declared In

ZegoLiveRoomApi-Publisher.h

– onVideoEncoderChanged:toCodecID:channel:

视频编码器变更通知

- (void)onVideoEncoderChanged:(ZegoVideoCodecAvc)fromCodecID toCodecID:(ZegoVideoCodecAvc)toCodecID channel:(ZegoAPIPublishChannelIndex)index

Parameters

fromCodecID

变更前的编码

toCodecID

变更后的编码

index

推流使用的推流通道

Discussion

当通过 [ZegoLiveRoomApi(Publisher) -enableH265EncodeFallback:] 开启H.265自动降级,且设置了H.265编码进行推流时,如果本机无法满足H.265编码要求,SDK内部会自动降级为指定编码(H.264),此时会回调本通知

Declared In

ZegoLiveRoomApi-Publisher.h

– onVideoObjectSegmentationStateChanged:channel:errorCode:

  • 主体分割状态回调 *
  • 当开启或关闭主体分割后,开启预览或者推流后根据实际情况通知开发者主体分割开启状态。 *
- (void)onVideoObjectSegmentationStateChanged:(ZegoObjectSegmentationState)state channel:(ZegoAPIPublishChannelIndex)channel errorCode:(int)errorCode

Parameters

state

主体分割状态

errorCode

错误码

index

推流使用的推流通道

Declared In

ZegoLiveRoomApi-Publisher.h