ZegoLivePublisherDelegate Protocol Reference
Conforms to | NSObject |
---|---|
Declared in | ZegoLiveRoomApi-Publisher.h |
– 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