npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

aliyun-webrtc-sdk

v1.17.5-dev1

Published

ali webrtc h5 sdk

Downloads

129

Readme

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)、视频编码、弱网对抗等算法为您提供低延时、抗丢包的音视频实时通信。

二、快速开启

  • 创建实例
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 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 |

音频相关接口

| 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

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

其他 错误码 errorCode

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