本章节为您介绍了AliRtcSDK Web端的所有接口信息,您可以根据接口详细说明集成SDK。

注意 请您尽快将SDK升级到1.9.1及以上版本,2020年2月起将不再支持旧版本SDK,最新版SDK请参见SDK下载

目录

基础接口

API 描述 以上版本支持
isSupport 检测浏览器是否支持 1.7
getDevices 获取设备信息 1.2
getAvailableResolutions 获取可支持的分辨率 1.2
isSupportScreenShare 是否支持屏幕共享 1.12
setChannelProfile 设置频道模式 1.12
setClientRole 设置角色 1.12

频道相关接口

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.5
setVideoProfile 设置视频流/共享流参数 1.11

音频相关接口

API 描述 以上版本支持
currentAudioCapture 指定麦克风设备 1.9
muteLocalMic 是否停止本地音频采集 1.2

预览接口

API 描述 以上版本支持
startPreview 预览本地摄像头 1.2
stopPreview 结束预览本地摄像头 1.2

远端用户查询接口

API 描述 以上版本支持
getUserList 获取当前房间在线用户 1.9
getUserInfo 获取用户信息 1.9

其他接口

API 描述 以上版本支持
on 订阅事件 1.2
off 取消订阅事件 1.2

接口详情

AliRtcSDK Web端接口信息如下所示。

  • isSupport():检测浏览器是否支持RTC SDK。

    线上环境必须使用https协议;您可以添加{isDebug: true}参数进行localhost(本地主机)调试跳过https协议检测。

    注意
    1.11版本:
    • 新增参数{channelProfile: 2},检测浏览器是否支持低延迟互动直播模式;默认参数{channelProfile: 0} 检测浏览器是否支持通信模式。
    • 必须在实例化之前调用该接口。
    1.12及以上版本:
    • 无需设置相关频道信息。
    • 不再是静态方法。
    • 在实例化后,加入频道前调用该接口。
    • 取消参数{channelProfile: 0}{channelProfile: 2}
    aliWebrtc.isSupport(option).then(re =>{
        console.log(re)
    }).catch(error => {
        console.log(error)
    })
    参数 类型 描述
    option isReceiveOnly Boolean 是否为纯订阅模式,取值:true|false(默认值)
    isDebug Boolean 是否为本地调试模式,取值:true|false(默认值)
    返回参数:
    参数 类型 描述
    audioDevice Boolean 音频设备是否可用,取值:true|false
    browser String 浏览器名称
    browser_version String 浏览器版本
    isSupported Boolean 是否支持webRTC
    message String 错误信息
    supportH264 Boolean 是否支持H264,取值:true|false
    supportScreenShare Boolean 是否支持屏幕分享,取值:true|false
    videoDevice Boolean 摄像头是否可用,取值:true|false
  • getDevices():获取设备信息,返回摄像头和音频输入设备,在Safari浏览器下面,如果外接设备重插拔后获取不到,请尝试重新启动电脑。
    aliWebrtc.getDevices().then((re)=>{
    }).catch((error)=>{ 
      console.log(error.message)
    });
  • getAvailableResolutions(deviceId):获取可支持的分辨率。返回支持分辨率的数组信息。
    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:观众身份
  • joinChannel(authInfo,displayName):加入频道。
    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:设置是否允许发布音频流。
    说明 默认为允许发布音频流,需要调用publish才能生效。
    aliWebrtc.configLocalAudioPublish=enable;
    参数 类型 描述
    enable Boolean 是否允许发布音频流,取值:true|false
  • configLocalCameraPublish:设置是否允许发布相机流。
    说明 默认为允许发布相机流,需要调用publish才能生效。
    aliWebrtc.configLocalCameraPublish=enable;
    参数 类型 描述
    enable Boolean 是否允许发布相机流,取值:true|false
  • configLocalScreenPublish:设置是否允许发布屏幕共享流。
    说明 默认为不允许发布屏幕共享流。
    aliWebrtc.configLocalScreenPublish=enable;
    参数 类型 描述
    enable Boolean 是否表示允许发布屏幕共享流,取值:true|false
  • publish():发布本地视频流,Web SDK只能推送大流。
    说明 您需要在加入频道成功之后调用该接口。如果需要让远程订阅本地的流,需要调用publish接口,发布本地流,远程会接收到onPublisher事件。
    aliWebrtc.publish().then(()=>{
    } ,(error)=>{
        console.log(error.message);
    });
  • unPublish():结束发布本地流,当您取消发布本地流时,远程会收到onUnPublisher事件。
    说明 1.14版本开始取消该接口,建议设置config后调用publish接口。
    aliWebrtc.unPublish().then(()=>{
    } ,(error)=>{
        console.log(error.message);
    });
  • configRemoteAudio:设置是否订阅远端音频流。
    说明 默认为订阅远端音频流,需要调用subscribe才能生效。
    aliWebrtc.configRemoteAudio(userId,enable);
    参数 类型 描述
    userId String 用户ID
    enable Boolean 是否订阅远端音频流,取值:true|false
  • configRemoteCameraTrack:设置是否订阅远端相机流。

    相机流包含大流和小流,大流分辨率更高,小流分辨率较低··

    说明 默认为订阅大流,需要调用subscribe才能生效。
    aliWebrtc.configRemoteCameraTrack(userId,preferMaster,enable);
    参数 类型 描述
    userId String 用户ID
    preferMaster Boolean true为优先订阅大流,false为优先订阅次小流
    enable Boolean 是否订阅远端相机流,取值:true|false
  • configRemoteScreenTrack:设置是否订阅远端屏幕流。
    说明 需要调用subscribe才能生效。
    aliWebrtc.configRemoteScreenTrack(userId,enable);
    参数 类型 描述
    userId String 用户ID
    enable Boolean 是否订阅远端屏幕流,取值:true|false(默认值)
  • subscribe(userId):订阅远程发布流,通过subscirbe方法可以订阅远程的流,默认订阅相机流和音频流,可以通过调用configRemoteAudio、configRemoteCameraTrack、configRemoteScreenTrack来设置订阅内容。
    aliWebrtc.subscribe(userId).then((userId)=>{
    },(error)=>{
        console.log(error.message);
    });
    参数 类型 描述
    userId String 用户ID
  • unSubscribe(userId):取消订阅该用户所有的流。
    说明 1.14版本开始取消该接口,建议设置config后调用subscribe接口。
    aliWebrtc.unSubscribe(userId).then(() => {
    },(error)=>{
        console.log(error.message);
    });
    参数 类型 描述
    userId String 用户ID
  • currentCamera:指定摄像头设备。暂不支持热切换,需要在预览和推流之前设置 。
    //pc端
    aliWebrtc.currentCamera = {
      deviceId: deviceId
    };
    //手机端 facingMode指定user时启用前摄像头、指定environment时启用后置摄像头
    aliWebrtc.currentCamera = {
      facingMode:"user"
    };
    参数 类型 描述
    deviceId String 摄像头ID
  • videoProfile:设置视频流参数。您要设置的分辨率需要调用getAvailableResolutions返回,然后调用publish才能生效。如果您设置的分辨率不合适,系统会自动进行调整。
    说明 1.14版本SDK取消该接口,请您使用setVideoProfile。
    aliWebrtc.videoProfile = { 
      frameRate:20,
      width: 640,
      height: 480
    };
    参数 类型 描述
    frameRate int 帧率,取值:5~30
    width int 视频宽度
    height int 设备高度
  • muteLocalCamera(mute):是否停止本地视频采集,返回true表示成功,false表示失败。该接口需要在推流状态下设置有效。
    说明 1.10及以上版本,该接口增加返回值。
    aliWebrtc.muteLocalCamera(true);
    参数 类型 描述
    mute Boolean 是否停止本地视频采集,取值:true|false
  • setDisplayRemoteVideo:为远端的视频设置渲染窗口以及绘制参数。
    说明 1.10及以上版本,该接口修改参数。
    aliWebrtc.setDisplayRemoteVideo(
        userId,       // userId用户Id
        video,        // html中用于显示stream对象的video元素
        1             // 1表示摄像头流(大流和小流)和音频流,2表示屏幕分享流
    )
  • setVideoProfile:设置摄像头/屏幕共享参数,设置之后需要重新发布。
    说明 屏幕共享清晰度与网络质量、设备性能有关,而不是设置的分辨率越高显示的越清晰。
    aliWebrtc.setVideoProfile({ 
          width,
          height,
          frameRate,
          maxBitrate
        },type);
    参数 类型 描述
    config width Number 宽度
    • 摄像头:640(默认值)
    • 屏幕共享:960(默认值)
    height Number 高度
    • 摄像头:480(默认值)
    • 屏幕共享:540(默认值)
    frameRate Number 帧率
    • 摄像头:15(默认值)
    • 屏幕共享:10(默认值)
    maxBitrate Number 最大码率
    • 摄像头:500000(默认值)
    • 屏幕共享:1500000(默认值)
    type Number 1表示摄像头,2表示屏幕共享
  • currentAudioCapture:指定麦克风设备。暂不支持热切换,需要在预览和推流之前设置。
    aliWebrtc.currentAudioCapture = {
      deviceId: deviceId
    };
    参数 类型 描述
    deviceId String 麦克风ID
  • muteLocalMic(mute):是否停止本地音频采集,返回true表示成功,false表示失败。该接口需要在推流状态下设置有效。
    说明 1.10及以上版本,该接口增加返回值。
    aliWebrtc.muteLocalMic(true);
    参数 类型 描述
    mute Boolean 是否停止本地音频采集,取值:true|false
  • startPreview(video):预览本地摄像头,通过video标签播放。
    aliWebrtc.startPreview(
        video    // html中的video元素
    ).then(()=>{
    }).catch((error) => {
        // 预览失败
    });
  • stopPreview():结束预览本地摄像头。
    aliWebrtc.stopPreview().then(()=>{
    }).catch((error) => {
        // 结束预览失败
    });
  • getUserList():获取当前房间在线用户。返回当前房间的在线用户列表信息。
    aliWebrtc.getUserList();
    返回参数:
    参数 类型 描述
    displayName String 用户名称
    userId String 用户ID
    streamConfigs Array 音视频流数组
    label String 流标签
    state String active表示流可用,inactive表示流不可用
    subscribed Boolean 是否订阅远端用户,取值:true|false
    type String audio表示音频,video表示视频
  • getUserInfo(userId):获取用户信息。
    aliWebrtc.getUserInfo(userId);
    返回参数:
    参数 类型 描述
    displayName String 用户名称
    streamConfigs —— Array 音视频流数组
    label String 流标签
    state String active表示流可用,inactive表示流不可用
    subscribed Boolean 是否订阅远端用户,取值:true|false
    type String audio表示音频,video表示视频
    userId String 用户ID
  • on(name, handler):订阅事件。
    参数 类型 描述
    name String 事件名字
    handler String 处理事件的方法
  • off(name, handler):取消订阅事件。
    参数 类型 描述
    name String 事件名字
    handler String 处理事件的方法