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");
});
效果展示
以上就是集成网易会议的详细解说,按照如上步骤就可以轻松完成。
目前,网易会议组件不仅可以应用于企业各类会议场景,还可广泛应用于娱乐社交行业、教育行业、金融行业、互联网医疗、工业物联网等领域。
共创共享,天下“一家”。”易+”开源计划希望开发者站在网易智企的肩膀上,基于优质的源代码进行上层开发和迭代创新,深耕需求场景打磨前沿产品,助力千行百业数字化转型。
低延时直播技术也将在近期开源,敬请期待。
欢迎扫码下载网易会议开源代码(右)
或添加小助手(左)加入官方社群
「云信小课堂」推荐阅读
👇快速接入指南👇
(点击即可快速跳转)