推流
如果登录房间时选择了主播或者互动连麦角色, 需要进行推流操作, 其他人才能看到直播画面。即将自己的视频画面通过调用推流方法推送到服务端, 观看者通过从服务端播流, 才可以看到对方的音视频画面。
步骤
1、设置推流配置
推流前需要实例化一个ChuangStreamConfig流配置对象,对所要推的流进行属性设置,需要传入流的模式。流的模式(参数streamstat)有三种,音视频模式: 0; 纯音频模式: 1; 纯视频模式: 2 详情请参考ChuangStreamMode。
streamConfig = ChuangLiveEngine.newStreamConfig(ChuangLiveEngine.ChuangStreamMode.BOTH);
所有推流配置一定要在推流前设置, 推流后设置或者修改不会生效。 如果需要修改配置, 需要停止推流, 修改配置后重新发起推流, 新的配置才会生效。
1.1 设置推流的流属性配置
通过调用setVideoConfig(videoConfig)
方法对视频的分辨率、比特率、帧率,推流模式,设备ID等内容进行设置。
参数 | 类型 | 是否必传 | 描述 |
---|---|---|---|
videoConfig | ChuangVideoConfig | 必传 | 配置信息对象 ChuangVideoConfig |
streamConfig.setVideoConfig(videoConfig);
2、 发起推流
登录房间成功返回后, 比如主播或者多人视频场景下, 需要将自己流信息推送给他人看到, 则必须调用ChuangLiveEngine.startPublishStream(streamId, streamConfig, onFailure)
推流接口, 将上述初始化的配置类传入推流接口。
方法参数说明:
参数 | 类型 | 是否必传 | 描述 |
---|---|---|---|
streamId | string | 必传 | 流ID,流信息唯一标识,注意流ID在APP内不能重复,流ID仅支持’0’-‘9’,’a’-‘z’,’A’-‘Z',‘-’,'_'字符,不超过256个字符 |
streamConfig | ChuangStreamConfig | 必传 | 推流配置参数对象,详情参照ChuangVideoConfig |
onFailure | failCallback | 选传 | 回调:播放本地流并发布失败 |
3、停止推流
需要停止推流时调用:ChuangLiveEngine.stopPublishStream (streamId, onFailure)
停止推流接口。
4、 推流状态回调
当主动调用推流接口并推流成功,主动调用停止推流接口并成功停止推流,或者其他网络异常引起推流中断的时候会收到该回调, 可用来监控本地流的视频流状态。
/*
@description 推流状态变化回调
@param streamId 流ID
@param state 流状态
@param errorCode 错误码
*/
ChuangLiveEngine.on(on('PublishStreamStateUpdate', function(streamId, state, errorCode){}))
流状态 | 错误码 | 说明 |
---|---|---|
0 | 0 | 停止推流成功 |
1 | 12013 | 网络原因导致推流中断重连 |
2 | 0 | 推流成功 |
2 | 12025 | 推流重连成功 |
5、 推流状态通知
用户可以根据自己需要调用小程序 statusNotification(streamId, code, {})
方法,进行通知。
6、 推流重连
当用户收到小程序自带回调 bindstatechange 结果为 detail.code === -2301 时,需主动调用推流重连接口 pushNextConn(streamId,onFailure)
,进行推流重连,或者调用 5、 中的方法,通知SDK层推流状态,稍后会收到推流状态回调。