1.17.3 • Published 6 months ago

aliyun-webrtc-sdk v1.17.3

Weekly downloads
50
License
MIT
Repository
-
Last release
6 months ago

Aliyun WebRtc SDK

阿里云音视频通信aliyun-webrtc-sdk,提供基于WebRTC适用于浏览器的SDK。

Installation

You can install it as dependency with npm/cnpm or yarn.

$ # save into package.json dependencies with -S
$ npm install aliyun-webrtc-sdk -S

$ # you can use cnpm for fast install
$ cnpm install aliyun-webrtc-sdk -S

$ # use yarn for install
$ yarn add aliyun-webrtc-sdk

一、接入前准备

阿里云RTC提供移动端、PC等多端SDK,并兼容标准WebRTC浏览器接入网络,帮助您快速搭建多端实时应用。接入RTC的方法,请参见入门概述。 当您成功搭建本地SDK,可以在终端调用API与RTC服务端进行交互,在加入频道或房间后,您可以进行本地推流、订阅远端用户等操作,实现频道内不同用户之间的音视频实时通话。 阿里云RTC拥有全球实时智能调度系统,并结合实时媒体处理系统和1500+边缘节点,运用行业领先的音频3A(AGC、AEC、ANS)、视频编码、弱网对抗等算法为您提供低延时、抗丢包的音视频实时通信。 npm.io

二、快速开启

  • 创建实例
import 'aliyun-webrtc-sdk'

/**
 * 创始实例,目前支持多实例
 */
var aliWebrtc = new AliRtcEngine();
  • 检测浏览器是否支持webrtc
aliWebrtc.isSupport().then((res)=>{
  //支持webrtc
}).catch((error)=>{
	//不支持webrtc
})
  • 订阅onPublisher回调。当远程用户推流时,在SDK里会触发onPublisher回调,通过订阅这个回调,能够得到频道里已经推流的用户。
aliWebrtc.on('onPublisher',(publisher) =>{
    //远程发布者userId
    console.log(publisher.userId);
    //远程发布名字
    console.log(publisher.displayName);
    //远程流内容,streamConfigs是数组。
    console.log(publisher.streamConfigs);
  });
  • 开启本地预览。在创建完AliRtcEngine实例后,您可以通过video标签播放。
aliWebrtc.startPreview(
    video    // html中的video元素
).then(()=>{
    //预览成功
}).catch((error) => {
    // 预览失败
});
  • 加入频道
aliWebrtc.joinChannel({
    userid,         // 用户ID,只能由数字、字母、下划线组成
    channel,        // 频道
    appid,          // 应用ID
    nonce,          // 随机码
    timestamp,      // 时间戳
    gslb,           // gslb服务地址
    token,          // 令牌
},displayName).then(()=>{
    // 入会成功
} ,(error)=>{
    // 入会失败,打印错误内容,可以看到失败原因
    console.log(error.message);
});
  • 推流 默认推摄像头和麦克风流
aliWebrtc.publish().then(()=>{
} ,(error)=>{
    console.log(error.message);
});
  • 订阅和显示远程流。通过subscribe方法订阅远程流,订阅成功后在调用setDisplayRemoteVideo显示远程流。

通常在onPublisher回调中进行订阅与设置视图。

aliWebrtc.subscribe(userId).then((userId)=>{
    aliWebrtc.setDisplayRemoteVideo(
        userId,       // userId是用户ID
        video,        // html中用于显示stream对象的video元素
        1             // 1表示摄像头流(大流和小流)和音频流,2表示屏幕分享流
    )
},(error)=>{
    console.log(error.message);
});
  • 离开频道。
aliWebrtc.leaveChannel().then(()=>{
} ,(error)=>{
    console.log(error.message);
});

三、接口回调列表

1)接口列表(详细接口信息请参考官网AliRtcEngine接口文档

基础接口

API描述以上版本支持
isSupport检测浏览器是否支持RTC SDK1.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

音频相关接口

API描述以上版本支持
currentAudioCapture指定麦克风设备1.9
muteLocalMic是否停止本地音频采集1.2
muteRemoteAudioPlaying设置是否停止播放远端音频流1.12.2
muteAllRemoteAudioPlaying设置是否停止远端的所有音频流的播放1.12.2
setAudioVolume设置订阅用户音量1.13
getAudioVolume获取订阅用户音量1.13
enableAudioVolumeIndicator设置接收音量值回调1.13

预览接口

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

2)回调列表(详细回调信息请参考官网回调与监听文档

API描述以上版本支持
onPublisher发布流回调1.2
onUnPublisher取消发布流回调1.2
onJoin加入频道回调1.2
onLeave离开频道回调1.2
onError错误异常回调1.2
onBye被服务器踢出或者频道关闭时回调1.11
onUpdateRole角色切换回调1.12
onAudioLevel音频能量值回调1.13

四、错误码列表(详细错误码信息请参考官网错误码文档)

isSupport 错误码 errorCode

错误码含义描述
10000ERROR_DEVICE_UNKNOWNERROR设备未知错误
10001ERROR_DEVICE_AUDIODEVICENOTFOUND未找到音频设备
10002ERROR_DEVICE_VIDEODEVICENOTFOUND未找到视频设备
10003ERROR_DEVICE_AUDIODEVICENOTALLOWED浏览器禁用音频设备
10004ERROR_DEVICE_VIDEODEVICENOTALLOWED浏览器禁用视频设备
10005ERROR_DEVICE_AUDIODEVICENOTREADABLE系统禁用音频设备
10006ERROR_DEVICE_VIDEODEVICENOTREADABLE系统禁用视频设备
10020ERROR_NOTSUPPORT_WEBRTC浏览器不支持webrtc
10021ERROR_NEEDHTTPS不是Https环境
10022ERROR_NOTSUPPORT_DEVICE不支持获取设备
10023ERROR_NOTSUPPORT_H264不支持H264
10024ERROR_NOTSUPPORT_BROWSER不支持此浏览器

其他 错误码 errorCode

错误码含义描述
10000ERROR_DEVICE_UNKNOWNERROR设备未知错误
10001ERROR_DEVICE_AUDIODEVICENOTFOUND未找到音频设备
10002ERROR_DEVICE_VIDEODEVICENOTFOUND未找到视频设备
10003ERROR_DEVICE_AUDIODEVICENOTALLOWED浏览器禁用音频设备
10004ERROR_DEVICE_VIDEODEVICENOTALLOWED浏览器禁用视频设备
10005ERROR_DEVICE_AUDIODEVICENOTREADABLE系统禁用音频设备
10006ERROR_DEVICE_VIDEODEVICENOTREADABLE系统禁用视频设备
10010ERROR_SCREENSHARE_UNKNOWNERROR屏幕共享未知错误
10011ERROR_SCREENSHARE_NOTALLOWED屏幕共享被禁用
10012ERROR_SCREENSHARE_ENDED屏幕共享已取消
10013ERROR_SCREENSHARE_NOPERMISSION屏幕共享系统禁止(mac)
10112ERROR_OPTIONS_LIVE_CANNOT_PUBLISH观众角色不能推流
10120ERROR_OPTIONS_AUDIO_ONLY纯音频模式推流或订阅其他流
10130ERROR_OPTIONS_ENABLECAMERAenableCamera的时候调用摄像头
10200ERROR_AUTOPLAY_UNKNOWN_ERROR自动播放未知错误
10201ERROR_AUTOPLAY_ERROR自动播放失败错误
10301ERROR_ICE_PUBLISH_DISCONNECTED推流ice断开
10302ERROR_ICE_SUBSCRIBE_DISCONNECTED订阅ice断开
10310ERROR_HEARTBEAT_TIMEOUT90s 心跳超时
10311ERROR_NOSESSIONno session
10400ERROR_PUBLISH_NOSTREAM所有流都是禁用状态
10401ERROR_ANSWER_FAILanswer失败
10500ERROR_FREQUENTLY_OPERATION操作频繁
33622275ERROR_OPTIONS_JOINCHANNEL入会失败,频道类型错误
1.17.3

6 months ago

1.17.2

2 years ago

1.17.0

2 years ago

1.16.6

2 years ago

1.16.3

2 years ago

1.16.5

2 years ago

1.16.4

2 years ago

1.16.2

3 years ago

1.16.1

3 years ago

1.16.0

3 years ago

1.15.4

3 years ago

1.15.3

3 years ago

1.15.2

3 years ago

1.15.0

3 years ago

1.15.1

3 years ago

1.14.7

3 years ago

1.14.6

3 years ago

1.14.5

3 years ago

1.14.4

3 years ago

1.14.3

3 years ago

1.14.2

3 years ago

1.14.1

3 years ago

1.14.0

3 years ago

1.13.4

3 years ago

1.13.3

4 years ago

1.13.2

4 years ago

1.13.1

4 years ago

1.13.0

4 years ago

1.12.2

4 years ago

1.12.1

4 years ago

1.12.0

4 years ago