互动直播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 之后,播放失败时调用