不论是在多人通话还是在秀场直播中,对端需要通过拉流功能在 ZEGO 服务上进行拉流,如此才能获取到好友或者主播的视频画面。
设置拉流回调监听后,在调用 startPlayingStream
拉流后,能收到拉流是否成功等相关事件的通知,如果拉流失败需要进行相应的错误处理。
[api setPlayerDelegate:self];
建议处理 ZegoLivePlayerDelegate 中的以下回调接口:
onPlayStateUpdate:streamID:
拉流是否成功或者拉流成功后断网等错误导致拉流失败的通知,如果拉流失败(stateCode!=0),App 端提示拉流失败或者重试拉流,相关错误码请查看 拉流错误码 可根据需要处理 onPlayQualityUpate:quality:
,onVideoSizeChangedTo:ofStream:
接口,
onPlayQualityUpate:quality:
:拉流质量信息的通知,例如音视频的帧率、码率等,用于 App 展示音视频的音质、画质。onVideoSizeChangedTo:ofStream:
:视频画面宽高发生变化的通知,此回调标识真正拉到了视频数据,如果 App 业务上在拉流前有背景图遮盖时,可以根据此通知去掉背景图遮盖。其余回调接口请根据业务实际情况进行选择处理,完整的拉流回调接口请查看 ZegoLivePlayerDelegate
注意:收到 onDisconnect 回调后,SDK断开房间信令服务,将无法收到
onPlayStateUpdate
等拉流回调,请开发者关注并处理 onDisconnect 回调。
调用 startPlayingStream
进行拉流。
注意:streamID
仅支持长度不超过 256 字节的数字、下划线、字母,streamID
需要在整个 AppID 内全局唯一。
[api startPlayingStream:@"STREAM_ID" inView:view];
对于
streamID
的获取,在本用户登录房间前就已经在推的流,可以从 登录成功回调 中获得,在本用户登录房间后新推或者停推的流,可以从房间代理中的 流信息更新 回调中获得。
拉流后可以调用如下 API 设置视图模式。
ZegoVideoViewMode viewMode = ZegoVideoViewModeScaleAspectFill;
[api setViewMode:viewMode ofStream:@"STREAM_ID"];
ZegoVideoViewMode
中视图模式之间的区别请查看 ZegoVideoViewMode
拉流后可以调用如下 API 更新拉流视图。
[api updatePlayView:view ofStream:@"STREAM_ID"];
当房间中的某条流被删除后,开发者需要调用 stopPlayingStream
停止拉流。
[api stopPlayingStream:@"STREAM_ID"];
注意:在停止拉流后需要移除相关的 UI 控件。
方法 | 描述 |
---|---|
setPlayerDelegate: | 设置拉流代理 |
startPlayingStream:inView: | 开始拉流 |
setViewMode:ofStream: | 设置拉流视图模式 |
stopPlayingStream: | 停止拉流 |
完成了拉流后,可以使用 ZEGO SDK 依次完成如下功能来实现基础的通话或者直播。
联系我们
文档反馈