如何使用融云 RTC Flutter Plugin
2011 年 7 月 2 日
融云 RTC Flutter Plugin
本文档主要讲解了如何使用融云 RTC Flutter Plugin,基于 融云 iOS/Android 平台的 RTCLib SDK
源码地址 Github
前期准备
1 申请开发者账号
融云官网 申请开发者账号
通过管理后台的 “基本信息”->”App Key” 获取 appkey
通过管理后台的 “IM 服务”—>”API 调用”->”用户服务”->”获取 Token”,通过用户 id 获取 IMToken
2 开通音视频服务
管理后台的 “音视频服务”->”服务设置” 开通音视频 RTC 3.0 ,开通两个小时后生效
依赖 RTC Flutter Plugin
在项目的 pubspec.yaml
中写如下依赖
dependencies: flutter: sdk: flutter rongcloud_rtc_plugin: ^0.9.2
iOS 需要在 Info.plist 中需要加入对相机和麦克风的权限申请
NSCameraUsageDescription 使用相机 NSMicrophoneUsageDescription 使用麦克风
还需要添加字段 io.flutter.embedded_views_preview
值为 YES
Android 需要在 AndroidManifest.xml 文件中声明对相机和麦克风的权限
项目依赖关系
如图 RTC 依赖于 IM 发送信令
业务流程
接口说明
1.初始化 SDK
RongcloudImPlugin.init(RongAppKey);
2.连接 IM
int rc = await RongcloudImPlugin.connect(IMToken); print("连接 im " + rc.toString());
3.加入 RTC 房间
RongRTCEngine.joinRTCRoom(this.roomId,(int code) { });
4.获取原生平台的 PlatformView
Widget view = RongRTCEngine.createPlatformView("userId", 200, 300, (int viewId) { });
5.渲染当前用户的视频
RongRTCEngine.renderLocalVideo(viewId);
6.发布当前用户音视频流
RongRTCEngine.publishAVStream((int code) { });
7.取消发布当前用户音视频流
RongRTCEngine.unpublishAVStream((int code) { });
8.订阅远端用户的音视频流
RongRTCEngine.subscribeAVStream(userId,(int code) { });
9.取消订阅远端用户的音视频流
RongRTCEngine.unsubscribeAVStream(userId,(int code) { });
10.渲染远端用户的视频
RongRTCEngine.renderRemoteVideo(userId, viewId);
常见问题
iOS 无法加载视频页面并报错: [VERBOSE-2:platform_view_layer.cc(28)] Trying to embed a platform view but the PaintContext does not support embedding
打开需要使用 Platform View 的 iOS 工程,在 Info.plist
中添加字段 io.flutter.embedded_views_preview
,其值为 YES
。