通过阅读本文,您可以了解到Web SDK的AliRtcEngine接口详情。
目录
构造函数
                        
                  
                  var aliWebrtc = new AliRtcEngine(option);参数说明| 参数 | 类型 | 描述 | |
|---|---|---|---|
| option | autoPublish | Boolean | 是否自动推流。取值:
                                 
  | 
                           
| autoSubscribe | Boolean | 是否自动订阅。取值:
                                 
  | 
                           |
基础接口
| API | 描述 | 支持的最低版本 | 
|---|---|---|
| isSupport | 检测浏览器是否支持Web SDK。 | 1.12 | 
| getDevices | 获取设备信息。 | 1.2 | 
| getAvailableResolutions | 获取可支持的分辨率。 | 1.2 | 
| isSupportScreenShare | 是否支持屏幕共享。 | 1.12 | 
| setChannelProfile | 设置频道模式。 | 1.12 | 
| setClientRole | 设置角色。 | 1.12 | 
| setAudioOnlyMode | 设置是否为纯音频模式。 | 1.12.2 | 
| dispose | 释放实例。 | 1.16.5 | 
频道相关接口
| API | 描述 | 支持的最低版本 | 
|---|---|---|
| joinChannel | 加入频道。 | 1.2 | 
| leaveChannel | 离开频道。 | 1.2 | 
发布相关接口
| API | 描述 | 支持的最低版本 | 
|---|---|---|
| configLocalAudioPublish | 设置是否允许发布音频流。 | 1.9 | 
| configLocalCameraPublish | 设置是否允许发布相机流。 | 1.9 | 
| configLocalScreenPublish | 设置是否允许发布屏幕共享流。 | 1.9 | 
| publish | 发布本地视频流。 | 1.2 | 
| unPublish | 结束发布本地流。 | 1.2 | 
订阅相关接口
| API | 描述 | 支持的最低版本 | 
|---|---|---|
| configRemoteAudio | 设置是否订阅远端音频流。 | 1.9 | 
| configRemoteCameraTrack | 设置是否订阅远端相机流。 | 1.9 | 
| configRemoteScreenTrack | 设置是否订阅远端屏幕流。 | 1.9 | 
| subscribe | 订阅远程发布流。 | 1.2 | 
| unSubscribe | 取消订阅该用户所有的流。 | 1.2 | 
视频相关接口
| API | 描述 | 支持的最低版本 | 
|---|---|---|
| currentCamera | 指定摄像头设备。 | 1.9 | 
| videoProfile | 设置视频流参数。 | 1.9 | 
| muteLocalCamera | 是否停止本地视频采集。 | 1.2 | 
| setDisplayRemoteVideo | 为远端的视频设置渲染窗口以及绘制参数。 | 1.14 | 
| setVideoProfile | 设置视频流或共享流参数。 | 1.11 | 
| enableCamera | 设置是否使用摄像头。 | 1.13.0 | 
音频相关接口
| API | 描述 | 支持的最低版本 | 
|---|---|---|
| currentAudioCapture | 指定麦克风设备。 | 1.9 | 
| muteLocalMic | 是否停止本地音频采集。 | 1.2 | 
| muteRemoteAudioPlaying | 设置是否停止播放远端音频流。 | 1.12.2 | 
| muteAllRemoteAudioPlaying | 设置是否停止远端的所有音频流的播放。 | 1.12.2 | 
| setAudioVolume | 设置订阅用户音量。 | 1.13.0 | 
| getAudioVolume | 获取订阅用户音量。 | 1.13.0 | 
| enableAudioVolumeIndicator | 设置接收音量值回调。 | 1.13.0 | 
| startAudioMixing | 开始播放音乐文件。 | 1.16.0 | 
| stopAudioMixing | 停止播放音乐文件。 | 1.16.0 | 
| pauseAudioMixing | 暂停播放音乐文件。 | 1.16.0 | 
| resumeAudioMixing | 恢复播放音乐文件。 | 1.16.0 | 
| adjustAudioMixingVolume | 调节伴奏音量。 | 1.16.0 | 
| setAudioMixingPosition | 设置音乐文件的播放位置。 | 1.16.0 | 
| getAudioMixingDuration | 获取音乐文件时长。 | 1.16.0 | 
| getAudioMixingCurrentPosition | 获取音乐文件播放进度。 | 1.16.0 | 
| setAudioOutput | 设置音频播放设备。 | 1.16.0 | 
预览接口
| API | 描述 | 支持的最低版本 | 
|---|---|---|
| startPreview | 预览本地摄像头。 | 1.2 | 
| stopPreview | 结束预览本地摄像头。 | 1.2 | 
| enableHighDefinitionPreview | 设置是否开启高清预览。 | 1.12.1 | 
远端用户查询接口
| API | 描述 | 支持的最低版本 | 
|---|---|---|
| getUserList | 获取当前房间在线用户。 | 1.9 | 
| getUserInfo | 获取用户信息。 | 1.9 | 
其他接口
| API | 描述 | 支持的最低版本 | 
|---|---|---|
| on | 订阅事件。 | 1.2 | 
| off | 取消订阅事件。 | 1.2 | 
| setExternalMediaTrack | 设置外部输入音视频流替换。 | 1.12.1 | 
接口详情
- isSupport:检测浏览器是否支持Web SDK。 
参数说明aliWebrtc.isSupport(option).then(re =>{ console.log(re) }).catch(error => { console.log(error) })名称 类型 描述 option isReceiveOnly Boolean 是否为纯订阅模式。取值: - true:是。
 - false(默认值):否。
 
isDebug Boolean 是否为本地调试模式。取值: - true:是。
 - false(默认值):否。
 
customPlay Boolean 是否为自定义播放模式。取值: - true:是。
 - false(默认值):否。
 
说明 设置customPlay后,当订阅发生变化时,由onMediaStreamUpdate消息响应,setDisplayRemoteVideo、muteRemoteAudioPlaying、muteAllRemoteAudioPlaying、setAudioVolume、getAudioVolume接口将失效。线上环境必须使用HTTPS协议。您可以添加{isDebug: true}参数进行localhost(本地主机)调试跳过HTTPS协议检测。
注意1.11版本:- 新增参数{channelProfile: 2},检测浏览器是否支持低延迟互动直播模式;默认参数{channelProfile: 0} 检测浏览器是否支持通信模式。
 - 在实例化之前,调用该接口。
 
1.12及以上版本:- 无需设置相关频道信息。
 - 不再是静态方法。
 - 在实例化之后加入频道前,调用该接口。
 - 取消参数{channelProfile: 0}、{channelProfile: 2}。
 
返回参数
名称 类型 描述 audioDevice Boolean 音频设备是否可用。取值: - true:是。
 - false:否。
 
browser String 浏览器名称。 browser_version String 浏览器版本。 isSupported Boolean 是否支持webRTC。取值: - true:是。
 - false:否。
 
message String 错误信息。 supportH264 Boolean 是否支持H264。取值: - true:是。
 - false:否。
 
supportScreenShare Boolean 是否支持屏幕分享。取值: - true:是。
 - false:否。
 
supportMixBackgroundAudio Boolean 是否支持屏幕声音分享。取值: - true:是。
 - false:否。
 
videoDevice Boolean 摄像头是否可用。取值: - true:是。
 - false:否。
 
 - getDevices:获取设备信息,返回摄像头和音频设备。如果外接设备重新插拔后获取不到设备信息,请尝试重新启动电脑。 
aliWebrtc.getDevices().then((re)=>{ }).catch((error)=>{ console.log(error.message) }); - getAvailableResolutions:获取可支持的分辨率的数组信息。 
参数说明aliWebrtc.getAvailableResolutions(deviceId).then((re)=>{ }).catch((error)=>{ console.log(error.message) });名称 类型 描述 deviceId String 摄像头ID。  - isSupportScreenShare:是否支持屏幕共享。 
aliWebrtc.isSupportScreenShare(); - setChannelProfile:设置频道模式。 
参数说明aliWebrtc.setChannelProfile(channelProfile);名称 类型 描述 channelProfile Number 频道模式。取值: - 0(默认值):普通模式。
 - 1:互动模式。
 - 2:低延迟互动直播模式。
 
 - setClientRole:设置角色。 
参数说明aliWebrtc.setClientRole(role);名称 类型 描述 role Number 角色类型,非通信模式下角色类型才有效。取值: - 0:互动身份。
 - 1(默认值):观众身份。
 
 - setAudioOnlyMode:设置是否为纯音频模式。 
参数说明aliWebrtc.setAudioOnlyMode(audioOnly);名称 类型 描述 audioOnly Boolean 是否开启纯音频模式,取值: - true:是。
 - false(默认值):否。
 
注意 需要早调用isSupport接口之前调用该接口。设置纯音频模式后,可以在调用isSupport时不再检测摄像头。加入频道后无法进行本地预览,推拉流只能是音频流。 - dispose:释放实例。 
aliWebrtc.dispose();说明 执行此函数释放实例时,函数内部会调用leaveChannel,因此不需要额外再执行leaveChannel退出频道。 - joinChannel:加入频道。 
参数说明aliWebrtc.joinChannel({ userid, // 用户ID channel, // 频道 appid, // 应用ID nonce, // 随机码 timestamp, // 时间戳 gslb, // gslb服务地址 token, // 令牌 },displayName).then(()=>{ // 入会成功 } ,(error)=>{ // 入会失败,打印错误内容,可以看到失败原因 console.log(error.message); });名称 类型 描述 authInfo userid String 用户ID。 channel String 频道。 appid String 应用ID。 nonce String 随机码。 timestamp String 时间戳。 token String 令牌。 gslb Array gslb(Global Server Load Balancing)服务地址。 displayName String 用户名字。  - leaveChannel:离开频道。 
aliWebrtc.leaveChannel().then(()=>{ } ,(error)=>{ console.log(error.message); }); - configLocalAudioPublish:设置是否允许发布音频流。 
参数说明aliWebrtc.configLocalAudioPublish=enable;名称 类型 描述 enable Boolean 是否允许发布音频流。取值: - true(默认值):是。
 - false:否。
 
注意 需要调用publish才能生效。 - configLocalCameraPublish:设置是否允许发布相机流。 
参数说明aliWebrtc.configLocalCameraPublish=enable;名称 类型 描述 enable Boolean 是否允许发布相机流。取值: - true(默认值):是。
 - false:否。
 
注意 需要调用publish进行推流后,设置才能生效。 - configLocalScreenPublish:设置是否允许发布屏幕共享流。 
参数说明aliWebrtc.configLocalScreenPublish=enable;名称 类型 描述 enable Boolean 是否允许发布屏幕共享流。取值: - true:是。
 - false(默认值):否。
 
注意 需要调用publish进行推流后,设置才能生效。 - publish:发布本地视频流。 
aliWebrtc.publish().then(()=>{ } ,(error)=>{ console.log(error.message); });Web SDK只能推送大流。
注意 需要在加入频道成功之后调用该接口。如果需要让远程订阅本地的流,需要调用publish接口,发布本地流,远程会接收到onPublisher事件。 - unPublish:结束发布本地流,当您取消发布本地流时,远程会收到onUnPublisher事件。 
aliWebrtc.unPublish().then(()=>{ } ,(error)=>{ console.log(error.message); });注意 1.14版本开始取消该接口,建议设置config后调用publish接口。 - configRemoteAudio:设置是否订阅远端音频流。 
参数说明aliWebrtc.configRemoteAudio(userId,enable);名称 类型 描述 userId String 用户ID。 enable Boolean 是否订阅远端音频流。取值: - true(默认值):是。
 - false:否。
 
注意 需要调用subscribe后,才能设置生效。 - configRemoteCameraTrack:设置是否订阅远端相机流。 
参数说明aliWebrtc.configRemoteCameraTrack(userId,preferMaster,enable);名称 类型 描述 userId String 用户ID。 preferMaster Boolean 优先订阅大流还是次小流。取值: - true(默认值):订阅大流。
 - false:订阅次小流。
 
enable Boolean 是否订阅远端相机流。取值: - true:是。
 - false(默认值):否。
 
相机流包含大流和小流,大流分辨率更高,小流分辨率较低。
注意 需要调用subscribe后,才能设置生效。 - configRemoteScreenTrack:设置是否订阅远端屏幕流。 
参数说明aliWebrtc.configRemoteScreenTrack(userId,enable);名称 类型 描述 userId String 用户ID。 enable Boolean 是否订阅远端屏幕流。取值: - true:是。
 - false(默认值):否。
 
注意 需要调用subscribe后,才能设置生效。 - subscribe:订阅远程发布流。 
参数说明aliWebrtc.subscribe(userId).then((userId)=>{ },(error)=>{ console.log(error.message); });名称 类型 描述 userId String 用户ID。 通过subscirbe方法可以订阅远程的流,默认订阅相机流和音频流,可以通过调用configRemoteAudio、configRemoteCameraTrack、configRemoteScreenTrack来设置订阅内容。
 - unSubscribe:取消订阅该用户所有的流。 
参数说明aliWebrtc.unSubscribe(userId).then(() => { },(error)=>{ console.log(error.message); });名称 类型 描述 userId String 用户ID。 注意 1.14版本开始取消该接口,建议设置config后调用subscribe接口。 - currentCamera:指定摄像头设备。
参数说明//pc端 aliWebrtc.currentCamera = { deviceId: deviceId }; //手机端 facingMode指定user时启用前摄像头、指定environment时启用后置摄像头 aliWebrtc.currentCamera = { facingMode:"user" };名称 类型 描述 deviceId String 摄像头ID。 注意 暂不支持热切换,需要在预览和推流之前设置。 - videoProfile:设置视频流参数。
参数说明aliWebrtc.videoProfile = { frameRate:20, width: 640, height: 480 };名称 类型 描述 frameRate int 帧率,取值范围:5~30。默认取值15。 width int 视频宽度。默认取值640。 height int 设备高度。默认取值480。 设置的分辨率需要调用getAvailableResolutions返回,然后调用publish才能生效。如果设置的分辨率不合适,系统会自动进行调整。
注意 1.14版本SDK取消该接口,请您使用setVideoProfile。 - muteLocalCamera:是否停止本地视频采集。 
参数说明aliWebrtc.muteLocalCamera(true);名称 类型 描述 mute Boolean 是否停止本地视频采集。取值: - true(默认值):停止本地视频采集。
 - false:不停止本地视频采集。
 
返回说明
true表示调用成功,false表示调用失败。
注意 1.10及以上版本,该接口增加返回值。该接口需要在推流状态下设置有效。 - setDisplayRemoteVideo:为远端的视频设置渲染窗口以及绘制参数。 
aliWebrtc.setDisplayRemoteVideo( userId, // 用户ID video, // html中用于显示stream对象的video元素 1 // 1表示摄像头流(大流和小流),2表示屏幕分享流 )注意- 1.10.0到1.14.0版本以下音频流无需设置视图,订阅后可以自动播放。
 - 1.14.0版本及以上音频流必须有一个播放视频的video才能播放,具体策略如下。
                                    
- 订阅音频流的同时仅设置摄像头的视图,音频可以播放,音频流跟随摄像头的视图播放。
 - 订阅音频流的同时仅设置屏幕共享流的视图,音频可以播放,音频流跟随屏幕共享的视图播放。
 - 订阅音频流的同时设置摄像头及屏幕共享流的视图,音频可以播放,音频流跟随摄像头的视图播放。
 - 订阅音频流的同时没有设置视图,音频无法播放。
 
 - safari浏览器音频订阅后就在后台默认播放。
 
 - setVideoProfile:设置摄像头或屏幕共享参数。 
参数说明aliWebrtc.setVideoProfile({ width, height, frameRate, },type);名称 类型 描述 config width Number 宽度。取值: - 摄像头:640(默认值)。
 - 屏幕共享:960(默认值)。
 
height Number 高度。取值: - 摄像头:480(默认值)。
 - 屏幕共享:540(默认值)。
 
frameRate Number 帧率。取值范围:5~30。取值: - 摄像头:15(默认值)。
 - 屏幕共享:10(默认值)。
 
maxBitrate Number 最大码率。取值: - 摄像头:500000(默认值)。
 - 屏幕共享:1500000(默认值)。
 
注意 1.13.2版本已删除该参数,SDK会根据设置的分辨率和帧率自动设置最大码率。1.13.2以下版本如果调用setVideoProfile,还需要配置该参数。type Number 设置类型。取值: - 1:摄像头。
 - 2:屏幕共享。
 
注意 屏幕共享清晰度与网络质量、设备性能有关,而不是设置的分辨率越高显示的越清晰。该接口设置之后需要重新发布。 - enableCamera:设置是否使用摄像头。 
参数说明aliWebrtc.enableCamera = enable;名称 类型 描述 enable Boolean 设置是否允许使用摄像头。取值: - true(默认值):允许。
 - false:不允许。
 
注意 该接口需要在isSupport之前调用,设置后isSupport将不再检测摄像头。 - currentAudioCapture:指定麦克风设备。 
参数说明aliWebrtc.currentAudioCapture = { deviceId: deviceId };名称 类型 描述 deviceId String 麦克风ID。  - muteLocalMic:是否停止本地音频采集
参数说明aliWebrtc.muteLocalMic(true, true);名称 类型 描述 mute Boolean 是否停止本地音频采集。取值: - true(默认值):停止本地音频采集。
 - false:不停止本地音频采集。
 
isRemember Boolean 是否记住状态(停止推流后再重新推流使用之前的音频采集配置)。取值: - true:记住。
 - false(默认值):不记住。
 
返回说明
true表示调用成功,false表示调用失败。
说明 1.10及以上版本,该接口增加返回值。该接口需要在推流状态下设置有效。 - muteRemoteAudioPlaying:设置是否停止播放远端音频流。
参数说明aliWebrtc.muteRemoteAudioPlaying(userId, muted);名称 类型 描述 userId String 用户ID。 muted Boolean 是否开启静音。取值: - true:开启。
 - false(默认值):不开启。
 
 - muteAllRemoteAudioPlaying:设置是否停止远端的所有音频流的播放 
参数说明aliWebrtc.muteAllRemoteAudioPlaying(muted);名称 类型 描述 muted Boolean 是否开启全员静音。取值: - true:开启。
 - false(默认值):不开启。
 
 - setAudioVolume:设置订阅用户音量。
参数说明aliWebrtc.setAudioVolume (userId, volume);名称 类型 描述 userId String 用户ID。 volume Number 音量值,取值:[0,1]。 返回说明
true表示调用成功,false表示调用失败。
注意- 该接口与静音接口互不冲突。
 - 该接口在ios设备上不支持。
 
 - getAudioVolume:获取订阅用户音量。 
参数说明aliWebrtc.getAudioVolume(userId);名称 类型 描述 userId String 用户ID。 返回参数
名称 类型 描述 volume Number 音量值,取值:[0,1]。  - enableAudioVolumeIndicator:设置接收音频音量值回调。 
参数说明aliWebrtc.enableAudioVolumeIndicator = enable;名称 类型 描述 enable Boolean 是否接收音频音量值回调。取值: - true:接收。
 - false(默认值):不接收。
 
 - startPreview:预览本地摄像头。
aliWebrtc.startPreview( video // html中的video元素 ).then(()=>{ }).catch((error) => { // 预览失败 });通过video标签播放。
 - stopPreview:结束预览本地摄像头。
aliWebrtc.stopPreview().then(()=>{ }).catch((error) => { // 结束预览失败 }); - enableHighDefinitionPreview:设置高清预览接口。
参数说明aliWebrtc.enableHighDefinitionPreview(enable);名称 类型 描述 enable Boolean 是否开启高清预览。取值: - true(默认值):开启。
 - false:不开启。
 
 - getUserList:获取当前房间在线用户。
aliWebrtc.getUserList();参数说明返回说明名称 类型 描述 displayName String 用户名称。 userId String 用户ID。 muteAudioPlaying Boolean 是否设置静音。取值: - true:是。
 - false:否。
 
streamConfigs - Array 音视频流数组。 label String 流标签。 state String 流状态,取值: - active:流可用。
 - inactive:流不可用。
 
subscribed Boolean 是否订阅远端用户。取值: - true:是。
 - false:否。
 
type String 音视频类型,取值: - audio:音频。
 - video:视频。
 
返回当前房间所有推流的在线用户列表信息。
 - getUserInfo:获取用户信息。
aliWebrtc.getUserInfo(userId);参数说明名称 类型 描述 displayName String 用户名称。 userId String 用户ID。 muteAudioPlaying Boolean 是否设置静音。取值: - true:是。
 - false:否。
 
streamConfigs - Array 音视频流数组。 label String 流标签。 state String 流状态,取值: - active:流可用。
 - inactive:流不可用。
 
subscribed Boolean 是否订阅远端用户。取值: - true:是。
 - false:否。
 
type String 音视频类型,取值: - audio:音频。
 - video:视频。
 
 - on:订阅事件。
参数说明on(name, handler)名称 类型 描述 name String 事件名字。 handler String 处理事件的方法。  - off:取消订阅事件。
参数说明off(name, handler)名称 类型 描述 name String 事件名字。 handler String 处理事件的方法。  - setExternalMediaTrack:设置外部输入。
参数说明aliWebrtc.setExternalMediaTrack(track, type);名称 类型 描述 track MediaStreamTrack 媒体流类型,取值: - audiotrack:传入音频流类型。
 - videotrack:传入视频流类型。
 
type Number 替换的流类型。取值: - 0:音频流。
 - 1:视频流。
 - 2:屏幕共享流。
 
说明- 外部输入的视频分辨率就是传入媒体流的分辨率,该分辨率不受setVideoProfile接口设置的影响。
 - 用audiotrack替换麦克风,用videotrack替换摄像头或屏幕共享进。
 - setExternalMediaTrack接口未推流状态才可以设置外部音视频流。
 - setExternalMediaTrack接口想取消设置外部音视频流,可以track传null,都需要在未推流状态下设置。
 - setExternalMediaTrack接口取消推流后需要重新设置。
 
 - startAudioMixing:开始播放音乐文件。
参数说明aliWebrtc.startAudioMixing({filePath: filePath}, (err)=> { if(err) { // 开启播放音乐文件失败 }else { // 开启播放音乐文件成功 } })参数 类型 描述 options - Object 选项。 filePath String 文件地址,必填。 cacheResource Boolean 是否缓存,默认true。 playTime Number 起始播放位置(毫秒), 默认0。 callback Function 回调函数。  - stopAudioMixing:停止播放音乐文件。
参数说明aliWebrtc.stopAudioMixing((err)=> { if(err) { // 停止播放音乐文件失败 }else { // 停止播放音乐文件成功 } })参数 类型 描述 callback Function 回调函数。  - pauseAudioMixing:暂停播放音乐文件。
参数说明aliWebrtc.pauseAudioMixing((err)=> { if(err) { // 暂停播放音乐文件失败 }else { // 暂停播放音乐文件成功 } })参数 类型 描述 callback Function 回调函数  - resumeAudioMixing:恢复播放音乐文件。
参数说明aliWebrtc.resumeAudioMixing((err)=> { if(err) { // 恢复播放音乐文件失败 }else { // 恢复播放音乐文件成功 } })参数 类型 描述 callback Function 回调函数。  - adjustAudioMixingVolume:调节伴奏音量。
参数说明aliWebrtc.adjustAudioMixingVolume(volume)参数 类型 描述 volume Number 伴奏音量:[0,100]。  - setAudioMixingPosition:设置音乐文件的播放位置。
参数说明aliWebrtc.setAudioMixingPosition(positioin, (err)=> { if(err) { // 设置音乐文件音频文件的播放位置失败 }else { // 设置音乐文件音频文件的播放位置成功 } })参数 类型 描述 position Number 伴奏位置,单位:毫秒。 callback Function 回调函数。  - getAudioMixingDuration:获取音乐文件时长。
参数说明aliWebrtc.getAudioMixingDuration()返回值 类型 描述 duration Number 总时长,单位:毫秒。  - getAudioMixingCurrentPosition:获取音乐文件播放进度。
参数说明aliWebrtc.getAudioMixingCurrentPosition()返回值 类型 描述 position Number 当前播放进度,单位:毫秒。  - setAudioOutput:设置音频播放设备。
参数说明aliWebrtc.setAudioOutput(deviceId).then(()=>{ // 设置成功 }).catch(()=> { // 设置失败 })参数 类型 描述 deviceId String 扬声器设备ID,可以通过getDevices获取。