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