本文为您介绍了AliRtcSDK Web端的所有接口信息。您可以根据接口详细说明集成SDK,也可以调用接口方法实现不同功能。

目录

基础接口

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

频道相关接口

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
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

预览接口

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

接口详情

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。取值:true|false。
    message String 错误信息。
    supportH264 Boolean 是否支持H264。取值:true|false。
    supportScreenShare Boolean 是否支持屏幕分享。取值:true|false。
    videoDevice Boolean 摄像头是否可用。取值:true|false。
  • getDevices():获取设备信息,返回摄像头和音频输入设备。如果外接设备重新插拔后获取不到设备信息,请尝试重新启动电脑。
    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:互动模式。
  • setClientRole:设置角色。
    aliWebrtc.setClientRole(role);
    参数 类型 描述
    role Number 角色类型。取值:
    • 0:互动身份。
    • 1:观众身份。
  • setAudioOnlyMode:设置是否为纯音频模式。

    请您在调用isSupport接口之前调用该接口。

    设置纯音频模式后,您在调用isSupport时不再检测摄像头。加入频道后无法进行本地预览,推拉流只能是音频流。

    aliWebrtc.setAudioOnlyMode (audioOnly);
    参数 类型 描述
    audioOnly Boolean 是否开启纯音频模式,取值:true|false(默认值)。
  • 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,       // 用户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表示屏幕共享。
  • enableCamera:设置是否使用摄像头。
    说明 该接口需要在isSupport之前调用,设置后isSupport将不再检测摄像头。
    aliWebrtc.enableCamera = enable;
    参数 类型 描述
    enable Boolean 设置是否允许使用摄像头。取值:true|false。(默认为true开启)
  • currentAudioCapture:指定麦克风设备。
    说明 该接口暂不支持热切换,您需要在预览和推流之前进行设置。
    aliWebrtc.currentAudioCapture = {
      deviceId: deviceId
    };
    参数 类型 描述
    deviceId String 麦克风ID。
  • muteLocalMic(mute):是否停止本地音频采集,返回true表示成功,false表示失败。该接口需要在推流状态下设置有效。
    说明 1.10及以上版本,该接口增加返回值。
    aliWebrtc.muteLocalMic(true);
    参数 类型 描述
    mute Boolean 是否停止本地音频采集。取值:true|false。
  • muteRemoteAudioPlaying:设置是否停止播放远端音频流。
    aliWebrtc.muteRemoteAudioPlaying(userId, muted);
    参数 类型 描述
    userId String 用户ID
    muted Boolean 是否开启静音,取值:true|false。
  • muteAllRemoteAudioPlaying:设置是否停止远端的所有音频流的播放
    aliWebrtc.muteAllRemoteAudioPlaying(muted);
    参数 类型 描述
    muted Boolean 是否开启全员静音,取值:true|false。
  • setAudioVolume:设置订阅用户音量。
    说明
    • 该接口与静音接口互不冲突。
    • 该接口在ios设备上不支持。
    aliWebrtc.setAudioVolume (userId, volume);
    参数 类型 描述
    userId String 用户ID
    volume Number 音量值,取值[0,1]。设置成功返回true,失败返回false。
  • getAudioVolume:获取订阅用户音量。
    aliWebrtc.getAudioVolume(userId);
    参数 类型 描述
    userId String 用户ID

    返回参数:

    返回值 类型 描述
    volume Number 音量值,取值[0,1]
  • enableAudioVolumeIndicator:设置接收音频音量值回调。
    aliWebrtc.enableAudioVolumeIndicator = enable;
    参数 类型 描述
    enable Boolean 是否接收。取值:true|false。(默认为false不接收)
  • startPreview(video):预览本地摄像头,通过video标签播放。
    aliWebrtc.startPreview(
        video    // html中的video元素
    ).then(()=>{
    }).catch((error) => {
        // 预览失败
    });
  • stopPreview():结束预览本地摄像头。
    aliWebrtc.stopPreview().then(()=>{
    }).catch((error) => {
        // 结束预览失败
    });
  • enableHighDefinitionPreview:设置高清预览接口。
    aliWebrtc.enableHighDefinitionPreview(enable);
    参数 类型 描述
    enable Boolean 是否开启高清预览,取值:true|false(默认:true)。
  • 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(userId):获取用户信息。
    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(name, handler):订阅事件。
    参数 类型 描述
    name String 事件名字。
    handler String 处理事件的方法。
  • off(name, handler):取消订阅事件。
    参数 类型 描述
    name String 事件名字。
    handler String 处理事件的方法。
  • setExternalMediaTrack:设置外部输入。用音频流或视频流,替换麦克风流或摄像头流进行推流。
    aliWebrtc.setExternalMediaTrack(track, type);
    参数 类型 描述
    track MediaStreamTrack 媒体流,传入音频流类型(audiotrack)或视频流类型(videotrack)。
    type Number 替换的流类型。取值:
    • 0:音频流。
    • 1:视频流。
    注意
    • setExternalMediaTrack接口未推流状态才可以设置外部音视频流。
    • setExternalMediaTrack接口想取消设置外部音视频流,可以track传null,都需要在未推流状态下设置。
    • setExternalMediaTrack接口取消推流后需要重新设置。