Vol. 10

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

第二步:引入开源库

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

三步:添加依赖

在新建项目根目录下的 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 文件中配置相关的权限信息。

第五步:其他配置

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

功能开发

由于篇幅所限,下面我们只展示一些关键步骤,具体请参考 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");
});

效果展示

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

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

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

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

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

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

「云信小课堂」推荐阅读

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

  1. “易+”开源 | 网易会议开源之移动端篇

    导读: 网易会议组件目前已经开源,源代码已经上传至 Github.该项目由网易云信团队自研,结合网易云信系统相关通讯功能.实时音视频.即时消息.白板.直播等功能构建了一套会议系统,本文主要介绍了网易会 ...

  2. Python开源指南

    Python开源指南 (一)Python开源项目概述 前言: 针对Python开源项目的贡献,鉴于在国内网站上进行查找搜索可能不能获得较为详细的相关介绍信息,没有充足的的资源帮助我们解决问题的状况,本 ...

  3. 微软开源实验环境构建工具 SimuLand,模拟攻击者知识技能

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 微软开源一款工具,名为 "SimuLand",用于构建实验环境,供安全团队模拟攻击并验证微软安全产品的检测效果. Si ...

  4. mysql htap 开源_基于开源应用快速构建HTAP系统

    原标题:基于开源应用快速构建HTAP系统 利用ProxySQL.MySQL.ClickHouse快速构建HTAP系统1. 关于ClickHouse 企业里随着数据量的增加,以及日趋复杂的分析性业务需求 ...

  5. erp5开源制造业erp和dream生产排程软件集成指南

    erp5开源制造业erp和dream生产排程软件集成指南 1 在dream生产排程软件中定义产品工艺路线,导入到erp5 2 在erp5中生成制造订单,导入到dream 3 在dream中定义设备生产 ...

  6. 从开源Sakai出发 构建国内远程教育系统

    本文讲的是从开源Sakai出发 构建国内远程教育系统,8月29日,由澳信传媒IT168主办的2009年系统架构师大会在北京举行.在下午的教育行业架构设计专场技术沙龙上,来自北京邮电大学网络教育学院的专 ...

  7. 云计算技术 — 云计算生态依靠开源社区进行构建

    目录 文章目录 目录 云计算生态依靠开源社区进行构建 健全标准 建立信任 云计算生态依靠开源社区进行构建 健全标准 云原生技术自 2015 年由 CNCF 下过定义以后,短短 5 年间发展迅速,已经演 ...

  8. Docker极速构建

    Docker极速构建 Docker极速构建指,使用Docker的镜像快速构建开发环境.功能模块.应用服务. 本文会为你介绍一条命令,搭建出你想要的容器. 构建过程中,我们会把容器的挂载目录集中放在一起 ...

  9. Eoapi :我们打算用开源的方式构建 API 生态系统

    Eotalk 是由 Eolink 发起的泛技术聊天活动,每期会邀请一些技术圈内的大牛聊聊天,聊些关于技术.创业工作.投融资等热点话题. 第一期,由 Eoapi 的核心开发者秦圆圆和 Eolink CE ...

最新文章

  1. 黄聪:VS2010开发T4模版引擎之基础入门
  2. webpack学习笔记 (三) webpack-dev-server插件和HotModuleReplacementPlugin插件使用
  3. Java Web -【分页功能】详解
  4. 将image存入mysql数据库_有谁知道如何把一图片存放到mysql数据库中
  5. J2EE项目代码编写规范分享
  6. linux内核那些事之early boot memory-memblock
  7. 反向传播是什么?通俗易懂的解释!!!
  8. MyEclipse 7.5 正式版中文插件安装
  9. 电子发票专用的邮箱—理票侠
  10. BUG计算机术语,程序员bug什么意思
  11. 前后端分离详解(转发)
  12. FFmpeg:‘UINT64_C‘ was not declared in ths scope
  13. Java Swing五子棋
  14. 应用matplotlib的imshow函数显示彩色图像(RGB data)报错的解决方法
  15. python儿童编程教育_2019儿童编程语言大全
  16. Android 应用快捷方式 Shortcuts(一)
  17. Java实现 蓝桥杯VIP 算法提高 阮小二买彩票
  18. 漂流瓶php源码,微信小程序之仿微信漂流瓶
  19. 用Python爬取并分析Box Office Mojo网站2019年每日票房数据
  20. java中IP地址与long之间的转换

热门文章

  1. java中日期格式转换
  2. 7.多媒体☞图像图形拍照
  3. 算法复习(7)有序二叉树
  4. 2021-11-14Iterator迭代器
  5. 问题小结(二)——maven的核心功能、面向对象编程和面向接口编程的区别、抽象类和接口的区别等
  6. JavaSE(十八)——IO流之字符流
  7. 机器人学习--全局定位(阿尔伯塔大学张宏教授报告)
  8. zipfile不能解压分卷压缩的文件
  9. -bash:XXX: command not found报错(云服务centos)
  10. 有源降噪装置专利(转)