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

– onCaptureAudioFirstFrame

采集音频的首帧通知

- (void)onCaptureAudioFirstFrame

Discussion

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

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

Declared In

ZegoLiveRoomApi-Publisher.h