ChuangLiveEngine

ChuangLiveEngine

互动直播SDK全局静态对象,所有方法和常量都可以从ChuangLiveEngine对象中获取。

Members

(static, readonly) ChuangUserRole :number

用户身份枚举
Properties:
Name Type Description
ANCHOR number 主播身份,不会收到'stream-added''stream-removed'事件
AUDIENCE number 观众身份
INTER_ACTION number 直播互动
Type:
  • number
Example
let role = ChuangLiveEngine.ChuangUserRole.ANCHOR;

(static, readonly) ChuangPublishChannel :number

发布流通道枚举
Properties:
Name Type Description
MAIN number 主通道,此通道允许发布一个视频加一个音频
AUX number 纯视频通道,此通道只允许发布一个视频
SAUX number 纯音频通道,此通道只允许发布一个视频
Type:
  • number
Example
let channel = ChuangLiveEngine.ChuangPublishChannel.MAIN;

(static, readonly) ChuangStreamMode :number

流模式:流模式只能在推流前设置,推流后只能使用mute方法关闭音频和视频
Properties:
Name Type Description
BOTH number 音视频
AUDIO number 纯音频
VIDEO number 纯视频
Type:
  • number
Example
let streamstat = ChuangLiveEngine.ChuangStreamMode.BOTH;

(static, readonly) ChuangRoomState :number

房间状态枚举
Properties:
Name Type Description
DISCONNECTED number 未登录、登录失败、退出登录、房间断开
CONNECTING number 连接中
CONNECTED number 重连成功、登录成功
Type:
  • number
Example
let roomState = ChuangLiveEngine.ChuangRoomState.CONNECTING //连接中

(static, readonly) ChuangEvent :string

房间事件枚举,注:这里直接使用字符串即可
Properties:
Name Type Description
'RoomStateUpdate' string 房间状态发生变化时触发的回调, 回调参数包含房间ID, 房间状态ChuangLiveEngine.ChuangRoomState和错误码ChuangLiveEngine.ChuangErrorCode
'RoomStreamUpdate' string 房间流变化时触发的回调,回调参数包房间ID, 流更新类型 ChuangLiveEngine.ChuangStreamUpdateType 和流信息Array<ChuangStreamInfo>列表
'MixStreamResult' string 混流成功时触发,回调参数为混流地址
'stream-Audio-revoked' string 由于用户取消设备或桌面权限,导致流的播放停止,回调参数是一个 ChuangStreamRevoke对象
'stream-video-revoked' string 由于用户取消设备或桌面权限,导致流的播放停止,回调参数是一个 ChuangStreamRevoke对象
'stream-not-autoplay' string 浏览禁止自动播放,回调参数是String,值为streamId,请引导用户点击
'stream-netstat' string 推流时的网络情况或机器性能不足时收到的通知,回调参数是一个 ChuangStreamNetstat对象
'PublishStreamQualityUpdate' string 推流质量回调, 参数包含流ID和一个流质量对象ChuangStreamQuality
'PlayStreamQualityUpdate' string 播流质量回调, 参数包含流ID和一个流质量对象ChuangStreamQuality
'PublishStreamVideoSizeChanged' string 推流分辨率发生变化时触发,包含流ID, 流的编码宽度和高度
'PlayStreamVideoSizeChanged' string 播流分辨率发生变化时触发,包含流ID, 流的编码宽度和高度
'PlayStreamStateChanged' string 音视频流状态改变时触发,回调参数是包含流ID和静音状态ChuangLiveEngine.ChuangStreamState
'CaptureSoundLevelUpdate' string 推流音量改变时触发, 回调参数包含流ID和一个 ChuangSoundLevel对象
'RemoteSoundLevelUpdate' string 播流音量改变时触发, 回调参数包含流ID和一个 ChuangSoundLevel对象
'PublishStreamStateUpdate', string 推流的状态发生变化时触发的回调, 回调参数包含流ID、推流状态ChuangLiveEngine.ChuangPublishState和错误码ChuangLiveEngine.ChuangErrorCode
'PlayStreamStateUpdate', string 播流的状态发生变化时触发的回调, 回调参数包含流ID、播流状态和错误码ChuangLiveEngine.ChuangErrorCode
'sdk-error' string 内部异常,回调参数是一个number,值参考ChuangLiveEngine.ChuangErrorCode 对象
'PlayStreamEvent' string 拉流音频初始化
'PlayStreamFirstAudio' string 拉流端收到首帧音频时,回调参数是流ID
'PlayStreamFirstVideo' string 拉流端收到首帧视频时,回调参数流ID
'PublishStreamFirstAudio' string 推流端推出首帧音频时,回调参数是流ID
'PublishStreamFirstVideo' string 推流端推出首帧视频时,回调参数流ID
'PublishStreamRenderFirstVideo' string 渲染出第一帧推流视频时,回调参数流ID
'ReceiveStreamAttchedMessage' string 收到流附加消息回调 参数包含流ID和消息内容
'NetworkTypeChanged' string 网络状态发生变化 netType取值:“ slow-2g”,“ 2g”,“ 3g”或“ 4g”之一。该值是使用最近观察到的往返时间和下行链路值的组合来确定的。
'preview-succeed' string 推流前预览成功
'unpreview-succeed' string 推流前停止预览成功
'test-resolution' string 推流分辨率摄像头不支持时触发
Type:
  • string
Example
ChuangLiveEngine.on("RoomStateUpdate", function (roomId, state, errorCode) {
});

(static, readonly) ChuangErrorCode :number

错误码枚举
Properties:
Name Type Description
0 number 操作成功
10001 number sdk未初始化,就调用非静态方法
10002 number appId传空
10003 number appId包含非法字符
50002 number appKey传空
10003 number appKey包含非法字符
10008 number 参数错误
10009 number 操作与角色不符
11001 number 用户ID为空
11002 number 用户ID过长,长度应小于256字节,最长为255字节
11003 number 用户ID非法
11004 number 房间ID为空
11005 number 房间ID过长,长度应小于256字节,最长为255字节
11006 number 房间ID非法
11007 number token 校验出错,可能是token过期或者token传错
11008 number token 校验失败,可能是网络异常导致校验超时
11009 number 登录失败,一般是AppId/AppKey错误导致
11010 number 由于被封禁导致登录失败
11011 number 其他原因导致登录失败
11012 number 网络原因导致与房间连接断开
11013 number 参数错误导致登录失败,login.ack中errcode为-202时
11014 number 房间重连成功
12001 number 流ID 为空
12002 number 流ID过长,长度应小于256字节,最长为255字节
12003 number 流ID包含非法字符
12004 number 推流转推RTMP地址非法
12005 number 推流转推RTMP地址过长,长度应小于1024字节
12006 number 推流附加消息内容为空
12007 number 流ID已经存在
50004 number 未登录房间或登录房间未成功,调用推流、拉流前必须登录房间成功
12009 number 发送推流附加消息时还未推流成功
12010 number 视频配置错误
12011 number 音频配置错误
12012 number 推流ID非法,可能已经被占用,authpublish失败时回调
12013 number 网络原因导致推流或播流中断重连
12014 number 转推RTMP连接服务器失败
12015 number 无麦克风权限
12016 number 无摄像头权限
12017 number 推流音频采集数据失败
12019 number 采集摄像头初始化失败 摄像头名设置错误或找不到设备
12020 number 麦克风初始化失败
12021 number '预览canvas view 为空
12022 number 设置视频自定义采集格式错误
12023 number 自定义采集接口调用错误
12024 number 推流通道设置错误
12025 number 推流重连成功
12026 number 播流重连成功
12027 number 从未设置预览就开始预览
13001 number 混流地址⾮法 混流的rtmp地址为空 或者传⼊了⾮rtmp://协议地址
13002 number 混流时的混流ID过长,长度应小于256字节,最大为255字符(混流ID含义同上条)
13003 number 混流输入流的数量过多,最多允许混9路流
13004 number 未推流成功就发起混流
13005 number 混流配置设置错误
13006 number 混流分辨率不⽀持
13007 number 混流参数错误
13008 number 混流时的混流ID为空,(混流ID是指:混流rtmp地址最后一个”/“后的自己拼接的混流ID)
13009 number 混流时的混流ID含有非法字符 仅⽀持0-9, a-z, A-Z,-, _(混流ID含义同上条)
13010 number 没有可参与混流的流
100001 number 找不到id为domId的网页元素
100002 number 当前地址非https或localhost,无法使用本SDK
100003 number 浏览器不支持WebRTC组件
100004 number 用户禁用了采集权限(包含摄像头或者屏幕)
100005 number 无法开启媒体设备(例如摄像头被占用,或一个浏览器尝试开多个摄像头)
100006 number WebRTC推流异常
100007 number WebRTC ICE严重错误
100008 number WebRTC P2P其它异常
100009 number 推流时已经推过主流或副流
100010 number WebRTC播流异常
100011 number 未知异常,可能是用户代码异常
100012 number 信令错误,状态机过程出现
Type:
  • number

(static, readonly) ChuangPublishState :number

推流状态枚举
Properties:
Name Type Description
DISCONNECTED number 未推流、推流失败、停推成功、推流断开
CONNECTING number 流服务器连接中
CONNECTED number 推流成功、推流重连成功
Type:
  • number

(static, readonly) ChuangPlayState :number

播流状态枚举
Properties:
Name Type Description
DISCONNECTED number 未播流、播流失败、停播成功、播流断开
CONNECTING number 服务器连接中
CONNECTED number 播流成功、播流重连成功
Type:
  • number

(static, readonly) ChuangStreamUpdateType :string

流列表更新类型
Properties:
Name Type Description
ADD string 有流进入
DELETE string 有流离开
Type:
  • string

(static, readonly) ChuangStreamState :string

流列表更新类型
Properties:
Name Type Description
AUDIO_MUTE string 静音频
AUDIO_UNMUTE string 取消静音频
VIDEO_MUTE string 静视频
VIDEO_UNMUTE string 取消静视频
Type:
  • string

(static, readonly) ChuangPlayStreamEvent :string

播流事件
Properties:
Name Type Description
AUDIO_INITIALIZE string
VIDEO_INITIALIZE string
AUDIO_DISCONNECTED string
VIDEO_DISCONNECTED string
AUDIO_RECEIVE_FIRST_FRAME string
VIDEO_RECEIVE_FIRST_FRAME string
AUDIO_DECODING string
VIDEO_DECODING string
AUDIO_STUCK string
VIDEO_STUCK string
Type:
  • string

(static, readonly) ChuangLogLevel :number

设置日志文件级别, sdk会记录所有日志级别大于设置级别的日志
Properties:
Name Type Description
LEVEL_VERBOSE number
LEVEL_DEBUG number
LEVEL_INFO number
LEVEL_WARN number
LEVEL_ERROR number
LEVEL_NONE number
Type:
  • number

Methods

(static) initEngine(appId, appKey, onFailure) → {boolean}

SDK初始化
Parameters:
Name Type Description
appId string 向系统申请的应用ID,必须
appKey string 向系统申请的应用key,必须
onFailure failCallback 回调:SDK初始化失败
Returns:
Type:
boolean
是否成功
Example
ChuangLiveEngine.initEngine("your_app_id","your_app_key");

(static) uninitEngine()

SDK对象销毁

(static) getDevices(callback)

获取浏览器可访问到的媒体设备列表,需要浏览器授权
Parameters:
Name Type Description
callback getDevicesCallback 回调函数

(static) setLogLevel(level)

设置日志级别
Parameters:
Name Type Description
level ChuangLiveEngine.ChuangLogLevel 设置日志文件级别, sdk会记录所有日志级别大于设置级别的日志
Example
ChuangLiveEngine.setLogLevel(1);

(static) on(eventType, callback)

注册SDK回调事件
Parameters:
Name Type Description
eventType ChuangLiveEngine.ChuangEvent 事件类型
callback function 回调:不同事件回调时的参数不同,请参考ChuangLiveEngine.ChuangEvent的描述

(static) off(eventType, callback)

注销SDK回调事件
Parameters:
Name Type Description
eventType ChuangLiveEngine.ChuangEvent 事件类型
callback function 回调:on时传入的回调,如果不传则注销这一事件所有的回调

(static) getRoomConnectState() → {string}

获取房间连接状态
Returns:
Type:
string
房间连接状态

(static) loginRoom(roomId, userId, userRole, onFailure)

登录房间
Parameters:
Name Type Description
roomId string 房间名,限制字母、数字和汉字,appid内唯一
userId string 用户ID,限制字母和数字,appid内唯一
userRole ChuangLiveEngine.ChuangUserRole 用户身份枚举
onFailure failCallback 回调:登录房间失败

(static) logoutRoom(onFailure)

登出房间
Parameters:
Name Type Description
onFailure failCallback 回调:登出房间失败

(static) newStreamConfig(channel) → {ChuangStreamConfig}

创建一个MediaConfig 类的示例,用于帮助配置发布流对应的媒体参数
Parameters:
Name Type Description
channel ChuangLiveEngine.ChuangPublishChannel 通道类型,用于指定发布流是主流还是副流
Returns:
Type:
ChuangStreamConfig

(static) startPreview(streamId, onFailure)

开启预览
Parameters:
Name Type Description
streamId string 流ID
onFailure failCallback 开启预览失败

(static) stopPreview(streamId, onFailure)

停止预览
Parameters:
Name Type Description
streamId string 流ID
onFailure failCallback 开启预览失败

(static) startPublishStream(streamId, domId, streamConfig, onFailure)

播放本地流并发布
Parameters:
Name Type Description
streamId string 流ID,限制字母和数字,appid内唯一
domId string 页面用于承载video的html节点的id
streamConfig ChuangVideoConfig 媒体配置参数
onFailure failCallback 回调:播放本地流并发布失败

(static) stopPublishStream(streamId, onFailure)

结束本地流的发布
Parameters:
Name Type Description
streamId string 流ID,对应发布流的ID
onFailure failCallback 回调:结束本地流发布失败

(static) startMixStream(streamMixConfig, onFailure)

开始发起混流
Parameters:
Name Type Description
streamMixConfig ChuangMixStreamConfig 混流的配置信息
onFailure failCallback 回调:发起混流失败

(static) updateMixStream(mixStreams, onFailure)

更新混流布局
Parameters:
Name Type Description
mixStreams ChuangMixStreamInfo 混流输入流的信息集合
onFailure failCallback 回调:更新混流布局失败

(static) stopMixStream(onFailure)

结束混流
Parameters:
Name Type Description
onFailure failCallback 回调:结束混流失败

(static) startPlayStream(streamId, canvas, onFailure)

播放远端流
Parameters:
Name Type Description
streamId string 远端流的ID
canvas ChuangVideoCanvas 用于播放的容器,包含:domId 页面用于承载video的html节点的id; options 播放器默认属性
onFailure failCallback 回调:播放远端流失败

(static) stopPlayStream(streamId, onFailure)

停止播放远端流
Parameters:
Name Type Description
streamId string 远端流的ID
onFailure failCallback 回调:停止播放远端流失败

(static) startPlayRoomStream(streamId, canvas, roomName, onFailure)

播放远端流
Parameters:
Name Type Description
streamId string 远端流的ID
canvas ChuangVideoCanvas 用于播放的容器,包含:domId 页面用于承载video的html节点的id; options 播放器默认属性
roomName string 房间号
onFailure failCallback 回调:播放远端流失败

(static) getVideoStreamStatus(streamId) → {object|null}

获取某个流的实时视频信息
Parameters:
Name Type Description
streamId string 流的ID
Returns:
Type:
object | null
流信息

(static) startSoundLevelMonitor(streamId)

开启流音量大小检测
Parameters:
Name Type Description
streamId string 流ID

(static) stopSoundLevelMonitor(streamId)

停止流音量大小检测
Parameters:
Name Type Description
streamId string 流ID

(static) setSoundLevelMonitorInterval(intervalMs) → {number}

设置流音量检测频率 单位为毫秒,默认为200ms
Parameters:
Name Type Description
intervalMs number 时间间隔
Returns:
Type:
number
时间间隔

(static) getStreamBitrate(streamId) → {number|null}

获取某个流的实时比特率
Parameters:
Name Type Description
streamId string 流的ID
Returns:
Type:
number | null
流当前比特

(static) getSDKVersion()

获取当前SDK的版本+打包时间

(static) muteLocalAudio(streamId, mute)

实现音频静音
Parameters:
Name Type Description
streamId string 流的ID
mute boolean 设置静音/取消静音(true: 静音; false: 取消静音)
Example
ChuangLiveEngine.muteAudio('streamId', true); //实现音频静音
ChuangLiveEngine.muteAudio('streamId', false); //取消音频静音

(static) muteLocalVideo(streamId, mute)

实现视频静音
Parameters:
Name Type Description
streamId string 流的ID
mute boolean 设置静音/取消静音(true: 静音; false: 取消静音)
Example
ChuangLiveEngine.muteVideo('streamId', true); //实现视频静音
 ChuangLiveEngine.muteVideo('streamId', false); //取消视频静音

(static) muteRemoteAudio(streamId, mute)

实现远端音频静音
Parameters:
Name Type Description
streamId string 流的ID
mute boolean 设置静音/取消静音(true: 静音; false: 取消静音)
Example
ChuangLiveEngine.muteRemoteAudio('streamId', true); //实现视频静音
 ChuangLiveEngine.muteRemoteAudio('streamId', false); //取消视频静音

(static) muteRemoteVideo(streamId, mute)

实现远端视频静音
Parameters:
Name Type Description
streamId string 流的ID
mute boolean 设置静音/取消静音(true: 静音; false: 取消静音)
Example
ChuangLiveEngine.muteVideo('streamId', true); //实现视频静音
 ChuangLiveEngine.muteVideo('streamId', false); //取消视频静音

(static) resumeAll()

恢复所有音视频流的播放,该方法一般在调用 Stream.play 之后,播放失败时调用