播流

登录房间成功后,会收到房间内的除自己以外的推流数据, 通过调用播流接口, 可以播放房间内存在的远端流。

步骤

1、 播/停播流时机

1.1 房间流状态变化回调

登录房间成功以后, 当房间内有流进入房间和离开房间时, 会触发on('RoomStreamUpdate', function(roomId, type, streamList){})回调方法, 此时APP层可在回调方法中处理新增流, 比如分配新的播放容器video, 调用开始播流方法开始播流。

/*
 @description 房间流状态变化回调 
 @param roomId 房间ID
 @param type 房间流改变类型
 @param streamList 流列表
 */
ChuangLiveEngine.on(on('RoomStreamUpdate', function(roomId, type, streamList){}))

2、 播流

2.1 开始播流方法

当收到上述1.1 和1.2 的回调时, 需要主动调用startPlayStream (streamId, canvas, onFailure)播流方法实现远端流的播放, 并在UI上添加播流Video,否则不会展示播流画面。

ChuangLiveEngine.startPlayStream (streamId, canvas,  onFailure);

注意:必须登录成功, 才能进行播流, 否则播流无效。

方法参数说明:

参数 类型 是否必传 描述
streamId string 必传 远端流的ID
canvas ChuangVideoCanvas 必传 页面用于用于播放的容器详情请参考ChuangVideoCanvas
onFailure failCallback 选传 回调:播放远端流失败

3、 停播

3.1 停止播流方法

当收到上述1.3离开房间的流信息回调的时候, 需要调用stopPlayStream (streamId, onFailure)停止播该方法,停止播流,并从UI上移除播流Video。

ChuangLiveEngine.stopPlayStream(streamId, onFailure);

方法参数说明:

参数 类型 是否必传 描述
streamId string 必传 停止播放的流名
onFailure failCallback 选传 回调:停止播放远端流失败

3.2 播流状态回调

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

/*
 @description 播流状态变化回调 
 @param streamId 流ID
 @param state 流状态
 @param errorCode 错误码
 */
ChuangLiveEngine.on(on('PlayStreamStateUpdate', function(streamId, state, errorCode){}))
流状态 错误码 说明
0 0 停止播流成功
1 12013 网络原因导致播流中断重连
2 0 播流成功
2 12025 播流重连成功

3.3播流质量回调

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

3.3 首帧视频回调,当推流的模式是音视频模式或者视频模式时会收到该回调【仅用于调试,上线时不要使用】

当服务端收到第一帧视频信息时会触发首帧视频回调, 调试阶段可以通过该回调判断视频画面显示是否正常。

/*
 @description (可选)回调收到首帧视频信息(推荐仅在调试时使用)
 @param streamId  流ID
 */
 ChuangLiveEngine.on('PlayStreamFirstVideo', function(streamId) {})

3.4 首帧音频回调,当推流的模式是音视频模式或者音频模式时会收到该回调【仅用于调试,上线时不要使用】

当服务端收到第一帧音频信息时会触发首帧音频回调, 调试阶段可以通过该回调判断声音显示是否正常。

/*
 @description (可选)回调收到首帧音频信息(推荐仅在调试时使用)
 @param streamId  流ID
 */
 ChuangLiveEngine.on('PlayStreamFirstAudio', function(streamId) {})

4、媒体设备控制

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

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

ChuangLiveEngine.muteRemoteAudio(streamId, mute)

方法参数说明:

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

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

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

ChuangLiveEngine.muteRemoteVideo(streamId, mute)

方法参数说明:

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

4.3音视频状态回调

当远端流执行静音静视频操作/反操作时会收到该回调。

/*
 @description 音视频状态变化回调 
 @param streamId 流ID
 @param state 流状态
 */
ChuangLiveEngine.on(on('PlayStreamStateChanged', function(streamId, state){}))

results matching ""

    No results matching ""