dingrtc
Version:
dingRTC web端 sdk
132 lines (95 loc) • 3.47 kB
Markdown
阿里云音视频通信dingRtc,提供基于WebRTC适用于浏览器的SDK。
You can install it as dependency with npm/cnpm or yarn.
```javascript
$
$ npm install dingrtc -S
$
$ cnpm install dingrtc -S
$
$ 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)、视频编码、弱网对抗等算法为您提供低延时、抗丢包的音视频实时通信。

- 创建实例
```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(`
}).catch((error)=>{
console.log(error.message);
});
// 订阅音频合流
client.subscribe('mcu', 'audio').then((track)=>{
track.play()
}).catch((error)=>{
console.log(error.message);
});
```
- 离开频道。
```javascript
client.leave();
```