UNPKG

dingrtc

Version:

dingRTC web端 sdk

132 lines (95 loc) 3.47 kB
# Aliyun WebRtc SDK 阿里云音视频通信dingRtc,提供基于WebRTC适用于浏览器的SDK。 ## Installation You can install it as dependency with npm/cnpm or yarn. ```javascript $ # save into package.json dependencies with -S $ npm install dingrtc -S $ # you can use cnpm for fast install $ cnpm install dingrtc -S $ # use yarn for install $ yarn add dingrtc ``` ## 一、接入前准备 阿里云RTC提供移动端、PC等多端SDK,并兼容标准WebRTC浏览器接入网络,帮助您快速搭建多端实时应用。接入RTC的方法,请参见[接口文档](https://help.aliyun.com/document_detail/2640098.html)。 当您成功搭建本地SDK,可以在终端调用API与RTC服务端进行交互,在加入频道或房间后,您可以进行本地推流、订阅远端用户等操作,实现频道内不同用户之间的音视频实时通话。 阿里云RTC拥有全球实时智能调度系统,并结合实时媒体处理系统和1500+边缘节点,运用行业领先的音频3A(AGC、AEC、ANS)、视频编码、弱网对抗等算法为您提供低延时、抗丢包的音视频实时通信。 ![](https://intranetproxy.alipay.com/skylark/lark/0/2020/png/241429/1583478028152-476aa35b-4353-4055-955a-199523e4c658.png#align=left&display=inline&height=1726&margin=%5Bobject%20Object%5D&originHeight=1726&originWidth=1346&size=0&status=done&style=none&width=1346) ## 二、快速开启 - 创建实例 ```javascript import DingRTC from 'dingrtc' /** * 创建客户端实例 */ const client = DingRTC.createClient(); ``` - 检测浏览器是否支持webrtc ```javascript const supported = DingRTC.checkSystemRequirements(); if (supported) { //支持webrtc } else { //不支持webrtc } ``` - 订阅user-published回调。当远程用户推流时,在SDK里会触发user-published回调,通过订阅这个回调,能够得到频道里已经推流的用户。 ```javascript client.on('user-published',(user, mediaType) =>{ //远程发布者userId console.log(user.userId); //远程发布轨道类型 console.log(mediaType); }); ``` - 加入频道 ```javascript client.join({ uid, // 用户ID,只能由数字、字母、下划线组成 channel, // 频道名 appId, // 应用ID token, // 令牌 userName, // 用户名 }).then((response)=>{ // 入会成功 console.log(response.remoteUsers); // 打印已在会中成员 }).catch((error)=>{ // 入会失败,打印错误内容,可以看到失败原因 console.log(error.message); }); ``` - 采集摄像头 ```javascript const cameraTrack = await DingRTC.createCameraVideoTrack({ frameRate: 15, dimension: 'VD_1280x720', }) ``` - 采集麦克风 ```javascript const micTrack = await DingRTC.createMicrophoneAudioTrack() ``` - 推流 ```javascript await client.publish([cameraTrack, micTrack]); ``` - 订阅和显示远程流。通过subscribe方法订阅远程流,订阅成功后在调用track.play显示远程流。 通常在user-published回调中进行订阅与设置视图。 ```javascript // 订阅指定用户视频 client.subscribe(userId, 'video').then((track)=>{ track.play(`#${userId}`) }).catch((error)=>{ console.log(error.message); }); // 订阅音频合流 client.subscribe('mcu', 'audio').then((track)=>{ track.play() }).catch((error)=>{ console.log(error.message); }); ``` - 离开频道。 ```javascript client.leave(); ```