推流

如果登录房间时选择了主播或者互动连麦角色, 需要进行推流操作, 其他人才能看到直播画面。即将自己的视频画面通过调用推流方法推送到服务端, 观看者通过从服务端播流, 才可以看到对方的音视频画面。

步骤

1、设置推流容器

推流开启之前需要设置展示流的Dom节点,用户需要在APP层创建Dom节点并设置标签id。

2、设置推流配置

推流前需要实例化一个ChuangStreamConfig流配置对象,对所要推的流进行属性设置,参数为主流或者副流(web端可以推两路流,通过主流副流来区分,流本质上没有区别)。

streamConfig = ChuangLiveEngine.newStreamConfig(ChuangLiveEngine.ChuangPublishChannel.MAIN);

所有推流配置一定要在推流前设置, 推流后设置或者修改不会生效。 如果需要修改配置, 需要停止推流, 修改配置后重新发起推流, 新的配置才会生效。

2.1 设置推流的流模式

设置推流的流模式,流的模式(参数streamstat)有三种,音视频模式: 0; 纯音频模式: 1; 纯视频模式: 2,详情请参考ChuangStreamMode

streamConfig.setStreamstat(streamstat)

2.2 设置推流预览镜像

设置推流预览镜像,参数为true镜像,参数为false非镜像,如果不进行设置默认为镜像。

streamConfig.setMirror(mirror)

2.3 设置推流的流属性配置

通过调用setVideoConfig(videoConfig)方法对视频的分辨率、比特率、帧率,推流模式,设备ID等内容进行设置。

参数 类型 是否必传 描述
videoConfig ChuangVideoConfig 必传 配置信息对象 ChuangVideoConfig
streamConfig.setVideoConfig(videoConfig);

2.4 设置推流转推RTMP

如果需要推流转推到RTMP,需要设置RTMP地址, 通过调用如下方法实现:

streamConfig.setRtmpAddress(rtmpAddress);

2.5 发起推流

登录房间成功返回后, 比如主播或者多人视频场景下, 需要将自己流信息推送给他人看到, 则必须调用ChuangLiveEngine.startPublishStream(streamId, domId, streamConfig, option, onFailure)推流接口, 将上述初始化的配置类传入推流接口。

方法参数说明:

参数 类型 是否必传 描述
streamId string 必传 流ID,流信息唯一标识,注意流ID在APP内不能重复,流ID仅支持’0’-‘9’,’a’-‘z’,’A’-‘Z',‘-’,'_'字符,不超过256个字符
domId string 必传 页面用于承载video的html节点的id
streamConfig ChuangStreamConfig 必传 推流配置参数对象,详情参照ChuangVideoConfig
option DomPlayerOptions 必传 播放器默认属性,详情参照DomPlayerOptions
onFailure failCallback 选传 回调:播放本地流并发布失败

3、停止推流

需要停止推流时调用:ChuangLiveEngine.stopPublishStream (streamId, onFailure)停止推流接口。

4、媒体设备控制

4.1 设置本端麦克风是否静音

即推流时是否采集本端的声音, 如果不采集mute设置为true, 如果采集则mute设置为false。 如果不设置, 推流默认是采集声音。

ChuangLiveEngine.muteLocalAudio(streamId, mute)

方法参数说明:

参数 类型 是否必传 描述
streamId string 必传 静音的流的ID
mute boolean 必传 设置是否采集本端麦克风声音,不采集为true,采集为false

4.2 设置本端摄像头是否静音

即推流时是否采集本端的视频, 如果不采集mute设置为true, 如果采集则mute设置为false。 如果不设置, 推流默认是采集视频。

ChuangLiveEngine.muteLocalVideo(streamId, mute)

方法参数说明:

参数 类型 是否必传 描述
streamId string 必传 静音的流的ID
mute boolean 必传 设置是否采集本端视频,不采集为true,采集为false

5、推流相关回调

5.1 推流状态回调

当主动调用推流接口并推流成功,主动调用停止推流接口并成功停止推流,或者其他网络异常引起推流中断的时候会收到该回调, 可用来监控本地流的视频流状态。

/*
 @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.2 推流质量监控回调【仅用于调试,上线时不要使用】

当开始推流后, 可以监听本地流质量on('PublishStreamQualityUpdate',function((streamId, ChuangPublishStreamQuality){}),实时了解本地流的情况。 ChuangStreamQuality是一个对象,包含帧率,码率,丢包等内容。

6、配置混流输入流视频混入情况

用户可以通过该方法 设置 该流在参与混流时,是否混入视频数据。

streamConfig.setMixv(boolean)

results matching ""

    No results matching ""