推送视频流
功能介绍
本节介绍如何将本端视频画面推送到房间,使其他参会者能看到本端的画面,包括:
- 开/关视频与视频状态
- 默认视频与多路视频
- 与视频设备管理、视频推流质量配置的配合
注意:
须在成功进入房间后,方可推送视频流(含 CRVideo_OpenVideo / CRVideo_CloseVideo)。
1. 打开与关闭视频
入会成功后,打开视频即表示本端已开启推送(缺省开启的只有默认视频设备)。若需同时开启多路视频设备,参见 同时推送多路视频流。
开启推送时并不立即发送数据到网络,只有在房间内其他人订阅打开的视频,或服务器有录制需求时,SDK 才会对被订阅的视频设备进行采集编码发送。
- 打开视频:调用 CRVideo_OpenVideo(UID),传入本端用户 ID(SDK 也支持打开他人视频,用于观看远端画面,一般需配合视频 UI 组件)。
- 关闭视频:调用 CRVideo_CloseVideo(UID),停止采集与发送。
- 视频开关状态:在房间内开关视频时,房间内所有人会收到 CRVideo_VideoStatusChanged 通知。后进入房间的用户,可通过 CRVideo_GetAllMembers 或 CRVideo_GetMemberInfo 获取已在会成员的视频状态(
videoStatus字段,见 CRVideo_VSTATUS)。
示例:
var UID = myUID; // 本端用户 ID
// 打开本端视频,向房间推送画面
CRVideo_OpenVideo(UID);
// 关闭本端视频,停止推送
CRVideo_CloseVideo(UID);
打开摄像头为异步操作。失败时收到 CRVideo_OpenVideoFailed(如设备被占用、未授权、无可用设备等);获取本地视频流超时可收到 CRVideo_OpenVideoTimeout,可提示用户重新开关摄像头。成功获取视频流后会收到 CRVideo_NotifyVideoStream。
相关 API 请参考:
- CRVideo_OpenVideo
- CRVideo_CloseVideo
- CRVideo_GetVideoStatus
- CRVideo_GetOpenedVideoIDs
- CRVideo_VideoStatusChanged
- CRVideo_GetAllMembers
- CRVideo_GetMemberInfo
- CRVideo_OpenVideoFailed
- CRVideo_OpenVideoTimeout
- CRVideo_VSTATUS
- 视频设备管理
2. 视频推流质量配置
分辨率、帧率、码率等由 CRVideo_SetVideoCfg 配置,详见 视频推流质量配置。
更多能力参见: