网易会议开源指南 | 极速构建你的专属会议软件!

a3fb372d08c3c0a1f5b826f47cad650e.png

Vol. 10

27c8d795c8deef0e5558729a6db13e81.png

3 月以来,我国本土疫情累计报告感染者超过两万例,波及全国 28 个省份。全球正在经历新冠疫情第四波流行高峰,多地开启居家办公模式。

蔓延全球的新冠疫情加速了数字化转型发展的进程,移动化办公成为各行各业的刚需,而会议软件作为远程信息传达的重要工具,已经是“基础设施”一般的存在。近期,易智企发布”易+”开源计划,其旗下融合通信云服务专家网易云信打响头炮,正式开源网易会议组件

本次开源的网易会议组件由网易云信团队自研,结合行业领先的实时音视频、即时通讯、白板、直播等技术,网易云信构建出一套稳定、高清、易用、安全的会议系统。基于该组件,开发者可以快速地将音视频会议功能集成至现有应用中,一周即可开发出一个属于自己的“ZOOM”。

本次云信小课堂,我们为大家带来网易会议开源指南,5 步构建你的专属会议软件

视频讲解

5 分钟视频,手把手教你接入

(横屏可放大)

功能开通

正式开始集成会议组件之前,我们需要进行一些前期准备工作:

  • 环境搭建:请确保 flutter 运行所需环境都已经搭建完成,可以在终端控制台通过 flutter doctor 命令行进行检测。

  • 应用开通:请确保您已经完成应用的创建和相关权限开通,并获取到会议组件 AppKey(非云信应用 AppKey),参考文档应用创建和服务开通(文档链接:https://reurl.cc/Go67QA)。

  • 账号申请:因为只有完成 SDK 登录鉴权才允许创建会议,所以我们需要提前准备一个会议组件的账号和密码。可以通过文档 REST APIS(文档链接:https://reurl.cc/2D9XNX)中的会议账号创建接口创建获取一对 accountId 和 accountToken。

SDK 集成

第一步:下载 SDK

我们 flutter 会议组件已经开源到了 GitHub 上,首先我们去 Git 下载开源代码,下载链接为:https://github.com/netease-kit/meeting

b397e7c3df9616f88c0ab8880ef2497b.png

第二步:引入开源库

新建一个 flutter 工程,复制 meeting/meeting-flutter/packages 文件夹到新建项目根目录。

39215cd4161669d9cab295de15df4a6c.png

三步:添加依赖

在新建项目根目录下的 pubspec.yaml 文件中添加下面依赖代码:

yunxin_meeting:
  path: ./packages/yunxin_meeting

第四步:权限处理

网易会议 SDK 正常工作需要摄像头、麦克风等权限,需要分别在 Android 和 iOS 模块中添加对应权限配置。

  • Android 所需权限:网易会议 SDK 正常工作需要应用获取以下权限,该权限已经在 SDK 内部进行声明,开发者可以不用在 AndroidManifest.xml 文件中重新声明这些权限。

<!-- 网络相关 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />


<!-- 读写外部存储 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


<!-- 多媒体 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />


<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
  • iOS 所需权限:需要在工程中的 Info.list 文件中配置相关的权限信息。

57eae868041fb80ef89113aad509ceb1.png

第五步:其他配置

需要在 Android 模块中的 AndroidManifest.xml 文件里指定 application 的 name 为 im.netease.nim.NimApplication 或者其子类。

86e1cb3bf9e0f383ee97f2e3ea96db3d.png

功能开发

由于篇幅所限,下面我们只展示一些关键步骤,具体请参考 NEMeetingSDK 下的 API。

  • SDK 初始化:在使用 SDK 其他接口之前,首先需要完成初始化操作。

//配置初始化相关参数,appkey为必选参数,其他为选填参数
NEMeetingSDKConfig config = NEMeetingSDKConfig(appKey: "your app key");
//初始化sdk,errorCode值200表示初始化成功
NEMeetingSDK.instance.initialize(config, (
    {required errorCode, errorMessage, result}) {
  Fluttertoast.showToast(msg: "errorCode:$errorCode");
});
  • 登录鉴权:请求 SDK 进行登录鉴权,只有完成 SDK 登录鉴权才允许创建会议。SDK 提供了多种登录方式可供选择,Token 登录、SSOToken 登录、自动登录。下面就 Token 登录方式说明 SDK 登录逻辑,其他登录方式同理。

//登录鉴权,errorCode值200表示登录成功
NEMeetingSDK.instance.loginWithToken(accountId, accountToken,
    ({required errorCode, errorMessage, result}) {
  Fluttertoast.showToast(msg: "errorCode:$errorCode");
});
  • 创建会议:必须在已经完成 SDK 登录鉴权的状态下,才可以创建并开始一个新的会议。创建会议成功后,SDK 会拉起会议界面并接管会议逻辑,开发者无需做其他处理。

//配置创建会议用的相关参数,displayName为必填参数,其他为选填参数。
NEStartMeetingParams startMeetingParams =
    NEStartMeetingParams(displayName: "your name");
//创建并开启会议,errorCode值200表示创建成功
NEMeetingSDK.instance.getMeetingService().startMeeting(
    context, startMeetingParams, NEStartMeetingOptions(), (
        {required errorCode, errorMessage, result}) {
  Fluttertoast.showToast(msg: "errorCode:$errorCode");
});
  • 加入会议:在已登录或未登录的状态下,加入一个当前正在进行中的会议。加入会议成功后,SDK 会拉起会议界面并接管会议逻辑,开发者无需做其他处理。

//配置创建会议用的相关参数,displayName、meetingId为必填参数,其他为选填参数。
NEJoinMeetingParams joinMeetingParams = NEJoinMeetingParams(
    meetingId: myController.text, displayName: disPlayName);
//加入会议,errorCode值200表示创建成功
NEMeetingSDK.instance.getMeetingService().joinMeeting(
    context, joinMeetingParams, NEJoinMeetingOptions(), (
        {required errorCode, errorMessage, result}) {
  Fluttertoast.showToast(msg: "errorCode:$errorCode");
});
  • 退出登录:请求 SDK 注销当前已登录账号,返回未登录状态。账号注销后,登录状态被清空,不再允许创建会议。

//退出登录
NEMeetingSDK.instance
    .logout(({required errorCode, errorMessage, result}) {
  Fluttertoast.showToast(msg: "errorCode:$errorCode");
});

效果展示

35cc6de2433d23b56da70cf819995e2a.png

以上就是集成网易会议的详细解说,按照如上步骤就可以轻松完成。

目前,网易会议组件不仅可以应用于企业各类会议场景,还可广泛应用于娱乐社交行业、教育行业、金融行业、互联网医疗、工业物联网等领域。

共创共享,天下“一家”。”易+”开源计划希望开发者站在网易智企的肩膀上,基于优质的源代码进行上层开发和迭代创新,深耕需求场景打磨前沿产品,助力千行百业数字化转型。

低延时直播技术也将在近期开源,敬请期待。

b4ff68cea713c4274107ed44bd764cd2.png

7bef6f0f26e201900e09e8a6d5e70637.png

欢迎扫码下载网易会议开源代码(右)

或添加小助手(左)加入官方社群

「云信小课堂」推荐阅读

👇快速接入指南👇

(点击即可快速跳转)

音视频通话 | 构建本土「Clubhouse」

安卓端 PK 连麦 | iOS 端 PK 连麦

在线聊天室 | 聊天室内容审核

利用 UI 组件实现应用级别在线聊天室

协同办公系统 | 音视频安全检测

3b1624b57e575459bd97b2075a84d9ef.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值