npm 包 webrtc-ring 使用教程

阅读时长 6 分钟读完

前言

WebRTC(Web Real-Time Communication)是一项支持浏览器进行实时高质量音视频通讯的技术,但是 WebRTC 本身实现起来相对复杂,其中包括 ICE、STUN、TURN、SDP 等概念。不过现在有很多好用的 WebRTC 库可以让我们更方便的实现这些功能,其中最主流的可能就是 SimpleWebRTC。不过在此介绍另外一款 WebRTC 库 — webrtc-ring

webrtc-ring 是一款纯 JS 实现的 WebRTC 库,相对于 SimpleWebRTC 等库,webrtc-ring 的代码体积更小(大约 10KB), 集成了 STUN/TURN 服务器,支持多人通讯等。虽然它在国内使用较少,但是在国外社区中被广泛使用。

本文详细介绍 webrtc-ring 的使用方法,包含示例代码。

安装

安装 webrtc-ring 利用 npm 可以很方便地完成:

webrtc-ring 中依赖了一款 Promise 实现的库 bluebird,如果你的项目中未引入可以像如下引入:

-- -------------------- ---- -------
--------- -----
------
  ------
    ---
  -------
  ------
    ---
    ------- --------------------------------------------------------------------------------
    ------- -----------------------------------------------
  -------
-------

使用与 DEMO

在使用 webrtc-ring 之前,我们需要有一个 STUN/TURN 服务器。这里我们推荐 coturn,需要的自己配置。之后我们就可以像如下这样在项目中使用 webrtc-ring(以下演示了发布本地视频):

-- -------------------- ---- -------
------ - --------- ---- - ---- --------------

-----------

----- ---- - --- ------
    -------------- --- -- --------
    --------------- --- -- --------
    -------------- --- -- ---- -----
    --------------- --- -- ---- -----
    -------------- --- -- ---- -----
    --------------- --- -- ---- -----
    --------- --- -- ---------
    --------- --- -- ----------
---

-------------------------------------
    ------ -----
    ------ -----
--------------------- -- -
    -- --------- ------ --
    --------------------------------------------
---------------- -- -
    --------------------------- ------- -------
---

因为 webrtc-ring 的底层使用了 WebSocket,所以我们在配置完服务器信息后应该监听 ready 事件:

发布本地视频流:

-- -------------------- ---- -------
-- --------------
------------------------ -- -
    -----------------------------
    -----------------------------------------------------------
    --------------------
------------------- -- -
    ---------------------- ----- -------------------
---------------- -- -
    -------------------- -- ---------- -------- -------
---

订阅远程视频流:

-- -------------------- ---- -------
-- --------------
---------------------------------------------- -- -
    ----------------- --------- -----
    -------------------------------
    ----------------------------- ----- -- -
        ----------------------------
        -- ----- ------------------------------------------ ------
        ----- ------------ - --------------------------------
        ---------------------- - ---------------------------------
        --------------------
        -----------------------------------------------------------
    ---
---------------- -- -
    -------------------- -- ----------- -------- -------
---

完整示例代码见Github 仓库

API

webrtc-ring 还有其他丰富的 API 支持,比如说:

  • Ring.connect: 用于创建 Ring 对象
  • Ring.publish: 发布本地流
  • Ring.subscribe: 订阅远程流
  • Ring.leave: 离开会议
  • Ring.getLocalVideo: 获取本地摄像头

详细使用可以查阅 webrtc-ring on Github.

总结

webrtc-ring 是一款轻量级,易上手的 WebRTC 库,相比于 SimpleWebRTC 等库的代码体积更小,相信会在未来被更多人使用。本文主要介绍了 webrtc-ring 的使用方法,同时提供了一个完整的 DEMO 供读者参考。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600671058dd3466f61ffdd84

纠错
反馈