即构Flutter音视频SDK是一款实时的音视频互动服务产品,能够为开发者提供便捷接入、高可靠、多平台互通的音视频服务。通过低至 200 ms 的端到端平均时延,业内领先的保障弱网质量的 QoS 策略,并结合强大的 3A 处理能力,完美支持一对多、多对多的实时音视频通话、直播、会议等场景。
一、Flutter音视频SDK基础功能
主要 功能 | 功能描述 | 业务场景 |
---|---|---|
音视频通话 | 用户加入同一个房间,并进行音视频通话。 | 1v1 视频通话多人视频会议 |
音视频直播 | 同一个房间,包含主播及观众,主播可以进行音视频直播,该房间内的观众可以观看直播。 | 秀场直播游戏直播电商直播 |
常用视频配置 | 在视频通话或直播时,自定义设置采集及播放的视频的相关配置,如视频采集分辨率、视频编码输出分辨率、视频帧率、码率、视图模式和镜像模式等。 | 分辨率、码率、镜像等特殊要求 |
视频旋转 | 用户使用移动设备进行直播或视频通话时,可以采用不同的视频采集方向,并且可以根据对端用户的摄像头方向的角度进行适配调整。 | 多类型设备视频通话、直播场景,需要最佳的视频播放角度的场景 |
通话前检测 | 在进行音视频通话或直播前,对摄像头、麦克风、显示器等进行设备检测,确保通话或直播的正常运行。 | 正常的通话功能检测 |
音视频质量检测 | 对音视频的质量进行检测,如分辨率、帧率、码率、采样率等多指标检测,确保质量稳定。 | 银行开户、远程鉴定等对音视频质量较高要求和限定的场景 |
混流 | 把多人的多路视频流混流为一路流,从而只需要拉取一条流就能看到房间内所有成员的画面,听到房间内所有成员的声音。 | 多人通话主播连麦 |
CDN 直播 | 支持推流到 CDN(Content Delivery Network,内容分发网络),方便用户从网页或第三方播放器直接观看和收听直播内容。 | 延迟要求没有特别高的直播场景 |
媒体播放器 | 提供播放音视频媒体文件的能力,并且支持将播放的媒体文件的音画数据推流出去。 | 播放测试音频播放背景音乐播放视频文件 |
音效播放器 | 提供音效播放器,并进行音效统一管理,实现增强真实感或者烘托场景氛围播放的简短效果音的播放控制等效果。 | 秀场直播游戏娱乐 |
水印 | 可以在视频画面上添加版权 Logo 等水印。 | 有版权的视频分享等 |
房间实时消息 | 实时消息主要提供纯文本消息的收发功能,可向同一房间内的其他用户发送广播消息和弹幕消息,或者对某些指定用户发送自定义消息,并可以根据需要自行实现点赞、送礼物、答题等互动功能。 | 秀场直播语聊房 |
用户权限控制 | 对用户进行权限控制,如:指定用户可以进房/退房;指定用户发言/静音;指定用户。 | 视频会议 |
更多Flutter音视频SDK功能可访问 文档中心
二、集成 Flutter音视频SDK
1 准备环境
在开始集成 ZEGO Express SDK 前,请确保开发环境满足以下要求:
- Flutter 1.12 或以上版本。
- iOS 9.0 或以上版本,且支持音视频的 iOS 设备或模拟器(推荐使用真机)。
- Android 4.4 或以上版本,且支持音视频的 Android 设备或模拟器(推荐使用真机)。如果为真机,请开启“允许调试”选项。
- Windows 7 或以上版本(注意:目前 SDK 在 Windows 上仅支持音频功能,暂不支持视频功能)。
- Web:Chrome 58 或以上版本、Firefox 56 或以上版本、Safari 11 或以上版本、Opera 45 或以上版本、QQ 浏览器 Windows 10.1 或以上版本/macOS 4.4 或以上版本、360 安全浏览器极速模式。
- 设备已经连接到 Internet。
请配置开发环境如下:
- Android Studio:“Preferences > Plugins”,搜索 “Flutter” 插件进行下载,并在插件中配置已经下载好的 Flutter 的 SDK 路径。
- VS Code: 在应用商店中搜索 “Flutter” 扩展并下载。
以上任一开发环境配置好 Flutter 环境后,在终端执行 flutter doctor
,根据提示内容补全相关未下载的依赖项。
2 集成 SDK
2.1 新建项目(可选)
2.2 导入 SDK
- 打开 “pubspec.yaml” 文件,添加 “zego_express_engine” 依赖,有以下两种形式:
- 以 “pub” 形式依赖(推荐):
dependencies:
flutter:
sdk: flutter
zego_express_engine: ^2.0.0
- 以 “git” 形式依赖:
dependencies:
flutter:
sdk: flutter
zego_express_engine:
git:
url: git@github.com:zegoim/zego-express-flutter-sdk.git
ref: main
- 添加完成并保存文件后,在终端执行
flutter pub get
。
3 设置权限
3.1 Android 添加权限
根据实际应用需要,设置应用所需权限。
进入 “app/src/main” 目录,打开 “AndroidManifest.xml” 文件,添加权限。
<!-- Permissions required by the SDK -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<!-- Permissions required by the Demo App -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
因为 Android 6.0 在一些比较重要的权限上要求必须申请动态权限,不能只通过 “AndroidMainfest.xml” 文件申请静态权限。请自行在 pub 上寻找第三方 flutter 插件来实现,或者在 Android 原生层参考执行如下代码,其中 “requestPermissions” 是 “Activity” 的方法。
String[] permissionNeeded = {
"android.permission.CAMERA",
"android.permission.RECORD_AUDIO"};
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(this, "android.permission.CAMERA") != PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(this, "android.permission.RECORD_AUDIO") != PackageManager.PERMISSION_GRANTED) {
requestPermissions(permissionNeeded, 101);
}
}
3.2 iOS 添加权限
打开项目,选择菜单 “TARGETS > Info > Custom iOS Target Properties”。
单击 “+” 按钮,添加摄像头和麦克风权限。
Privacy - Camera Usage Description
Privacy - Microphone Usage Description
权限添加完成后,如图所示:
通过以上步骤就可以集成SDK去实现视频直播、音视频通话等共功能。
更多详细集成细节和常见问题可以访问:集成 SDK
本文为原创稿件,版权归作者所有,如需转载,请注明出处:https://www.nxrte.com/jishu/yinshipin/5077.html