通过阅读本文,您可以了解到Web SDK的AliRtcEngine接口详情。

目录

构造函数
var aliWebrtc = new AliRtcEngine(option);
参数说明
参数 类型 描述
option autoPublish Boolean 是否自动推流。取值:
  • true:是。
  • false(默认值):否。
autoSubscribe Boolean 是否自动订阅。取值:
  • true:是。
  • false(默认值):否。

基础接口

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获取。