使用 WebRTC 技术实现音视频通话是现代 Web 开发中不可或缺的一部分。而 NetEase IM 网易云信提供了一种易用的解决方案——Netcall。Netcall 是基于 WebRTC 实现的音视频通话解决方案,易于使用,具有多种功能,包括呼叫、接听、拒绝、挂断、静音等,同时支持 Web、Android、iOS 等多种端口。本篇文章将详细介绍如何使用 Netcall 安装 npm 包并在前端代码中使用。
准备工作
在开始之前,需要确保环境准备完全。在准备之前,需要先安装 Node.js 以及 npm,可以在官方网站上下载或者安装管理器中获取。
安装 NPM 包
在环境准备之后,我们需要使用 npm 安装 Netcall 包。可以使用以下命令:
npm install @netease/netcall-sdk --save
当然也可以使用 yarn 安装:
yarn add @netease/netcall-sdk
这样我们就完成了 Netcall 包的安装。
初始化
要使用 Netcall 包,我们需要完成初始化。我们可以通过以下代码完成:
import Netcall from '@netease/netcall-sdk'; const netcall = new Netcall({ debug: false, appKey: '<your appKey>', // 应用的 appKey,由网易云信分配 account: '<your account>', // 应用的账户 token: '<your token>', // 应用的 token });
在这段代码中,我们完成了 Netcall 包的导入并使用构造函数初始化了一个 Netcall 对象。需要注意的是,其中的 appKey
,account
,token
需要替换为你的云信账户信息。
连接服务器
接下来,我们需要连接服务器以便使用 Netcall。我们可以通过以下代码完成:
const loginData = { uid: 'your uid' }; // 用户信息 netcall.init(loginData).then(() => { return netcall.joinChannel('<your channel>'); }).then(() => { console.log('join channel done.'); }).catch(() => { console.log('join channel error.'); });
在这个代码块中,我们完成了用户信息的初始化,并使用 init()
方法与服务器建立连接,最后通过 joinChannel()
方法加入了一个频道。需要替换的是 uid
和 channel
以适应你的情况。
开始通话
现在,我们已经完成了 Netcall 的初始化,并加入了一个频道。接下来,我们可以使用 Netcall 包开始通话。以下是一个简单的例子,用于发起一个音视频通话请求:
-- -------------------- ---- ------- ----- -------- - ----- -- ------ -------------- ----- -------- - -------------------------- - --------------------------- -------- ------ ------ ---------- ------------- -- - ----------------------- ----- -------------- -- - ----------------- ---
这段代码会根据 useVideo
参数创建一个音频或者视频通话请求,并使用 call()
方法发起请求。需要替换的参数是 account
,这是你需要通话的好友的 netease_uid。
接听与拒绝通话
当你的好友发起了通话请求,你可以使用以下代码接听:
netcall.response({ accepted: true, beCallType: data.beCallType, });
如果你不想接听通话,可以使用以下代码拒绝通话:
netcall.response({ accepted: false, beCallType: data.beCallType, });
需要注意的是,在使用 response()
方法时,需要传入生成的通话请求的 type 和对方 netease_uid。
静音与取消静音
在通话时,你可以使用以下代码静音:
netcall.setAudioMute(true);
要取消静音,可以使用以下代码:
netcall.setAudioMute(false);
挂断通话
在通话结束时,需要关闭音视频设备并结束通话。可以使用以下代码:
netcall.hangup();
这篇文章提供了一个对 Netcall 包详细介绍以及使用指导的文章。通过本文你可以了解到如何安装 Netcall 包,初始化、连接服务器以及使用 Netcall 包进行音视频通话。同时,这个示例也适用于其他类似的 WebRTC 类库,使用这个系列的类库可以更快速地实现音视频通话需求。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600575c681e8991b448ea759