本文由动哒公众号(dongda_5g),QQ群(174353204)提供,欢迎关注获取技术支持,有任何问题群里都会回复。
上一篇中,咱们探讨了下视频通话的布局,这一篇咱们来探讨利用声网的flutter插件实现视频通话。
在APP中实现视频通话,目前可采用的sdk有网易云信,腾讯云,以及声网。而在我们的flutter系列课程中,使用的则是声网,之所以选择声网,原因很简单,声网有支持flutter的plugin,而其他平台目前还没有flutter插件的支持或者并不完善。
除此之外,声网的另外一个好处就是,每月前10000分钟时免费的,这样我们可以在不需要付费的情况下就先行把视频通话功能做好,超过了10000分钟,咱们再付费。
第一步:声网注册
image登录之后,在项目管理里面创建你的项目,然后会生成一个App ID,这个App ID就是我们要用到的配置在项目中的一个关键信息。
image进入右上角开发者社区,可以了解开发和社区相关的一些信息。
image.png好了,下面我们正式来配置和开发
以前面的布局为基础,如果没有看的同学,左拐https://www.jianshu.com/p/e3c0253e6e85
1.在pubspec.yaml添加agora_rtc_engine插件,目前最新版本是1.0.1
agora_rtc_engine: ^1.0.1
2.初始化
2.1配置App ID
引入dart文件
import 'package:agora_rtc_engine/agora_rtc_engine.dart';
配置App ID并启用视频功能
void _initAgoraRtcEngine() {
AgoraRtcEngine.create("140e572f7a4a4bcaa359155b2a9ccec0");
AgoraRtcEngine.enableVideo();
}
注意是enableVideo,我第一次使用的时候,错误的写成了AgoraRtcEngine.enableAudio();,导致视频一直出不来。
2.2 添加事件处理
事件方法先添加在这里,暂时未处理。
void _addAgoraEventHandlers() {
AgoraRtcEngine.onError = (dynamic code) {};
AgoraRtcEngine.onJoinChannelSuccess = (String channel, int uid, int elapsed) {};
AgoraRtcEngine.onLeaveChannel = () {};
AgoraRtcEngine.onUserJoined = (int uid, int elapsed) {};
AgoraRtcEngine.onUserOffline = (int uid, int reason) {};
AgoraRtcEngine.onFirstRemoteVideoFrame = (int uid, int width, int height, int elapse) {};
}
2.3 最后配置其他初始化参数,并将上面两个方法整合
void initAgora() {
_initAgoraRtcEngine();
_addAgoraEventHandlers();
// 支持web端的交互吧
AgoraRtcEngine.enableWebSdkInteroperability(false);
AgoraRtcEngine.setParameters('{\"che.video.lowBitRateStreamParameter\":{\"width\":320,\"height\":180,\"frameRate\":15,\"bitRate\":140}}');
AgoraRtcEngine.joinChannel(null, widget.conversationId, null, 0);
}
其中类方法中加上conversationId, 别的文档里面可能是channelName,实际上是可以理解为房间号,我这里定义为会话id,即conversationId。
// 我这里定义为ConversationId
final String conversationId;
Lession2Page({Key key, this.conversationId}) : super(key: key);
2.4 将以上初始化配置在initState中
@override
void initState() {
super.initState();
initAgora();
}
忘了,还有一茬,AndroidManifest.xml里面加上网络权限
<uses-permission android:name="android.permission.INTERNET"/>
好了,下回分解将之前的布局和声网接口结合起来,实现视频通话,请听下回分解。
网友评论