Flutter音视频UI组件插件wend_agora_uikits的使用
Flutter音视频UI组件插件wend_agora_uikits的使用
Agora VideoUIKit for Flutter
简介:
立即在您的Flutter应用中集成Agora视频通话或视频流功能。
开始使用
Agora Flutter VideoUIKit布局示例
路线图
- ❌ 添加用户名
- ✅ 更多事件回调
- ✅ 添加RTM SDK
- ❌ 屏幕共享
- ❌ 语音通话布局
- ❌ 可重新排序的列表视图(浮动布局)
- ❌ 云录制
- ❌ 将观众提升为广播员角色。
- ✅ 远程成员静音/取消静音
- ✅ Flutter Web支持作为预发布版本
- ❌ Flutter桌面支持作为预发布版本
使用要求
- Agora开发者账户: 如何开始使用Agora
- Android或iOS设备
- Flutter项目
安装
在您的Flutter项目中,将agora_uikit
作为依赖项添加到pubspec.yaml
文件中。
在Android项目的build.gradle
文件中,添加以下内容到repositories
部分末尾:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
设备权限
Android
打开AndroidManifest.xml
文件并添加所需的设备权限:
<manifest>
...
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- Agora SDK需要蓝牙权限以支持蓝牙设备 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
...
</manifest>
iOS
打开Info.plist
文件并添加以下内容:
- 隐私 - 麦克风使用描述
- 隐私 - 摄像头使用描述
如果需要在后台运行语音通话,请启用后台模式。在Xcode中选择应用程序目标,点击“Capabilities”选项卡,启用“Background Modes”,并勾选“Audio, AirPlay, and Picture in Picture”。
使用方法
以下是完整的代码示例,展示如何使用wend_agora_uikits
插件进行视频通话:
import 'package:wend_agora_uikits/agora_uikit.dart';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
// 初始化Agora客户端
final AgoraClient client = AgoraClient(
agoraConnectionData: AgoraConnectionData(
appId: "<--Add your App Id here-->", // 替换为您的Agora App ID
channelName: "test",
username: "user", // 用户名(可选)
),
);
[@override](/user/override)
void initState() {
super.initState();
initAgora(); // 初始化Agora引擎
}
void initAgora() async {
await client.initialize(); // 初始化Agora客户端
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Agora VideoUIKit'), // 设置应用标题
centerTitle: true,
),
body: SafeArea(
child: Stack(
children: [
// 视频查看器
AgoraVideoViewer(
client: client, // 绑定Agora客户端
layoutType: Layout.floating, // 设置布局类型为浮动
enableHostControls: true, // 启用主持人控件
),
// 视频按钮
AgoraVideoButtons(
client: client, // 绑定Agora客户端
),
],
),
),
),
);
}
}
更多关于Flutter音视频UI组件插件wend_agora_uikits的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter音视频UI组件插件wend_agora_uikits的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
wend_agora_uikits
是一个基于 Agora SDK 的 Flutter 插件,用于快速集成音视频通话的 UI 组件。它提供了一些预构建的 UI 组件,帮助开发者快速实现音视频通话功能,而无需从头开始设计和开发 UI。
安装
首先,你需要在 pubspec.yaml
文件中添加 wend_agora_uikits
依赖:
dependencies:
flutter:
sdk: flutter
wend_agora_uikits: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
基本使用
-
初始化 Agora SDK
在使用
wend_agora_uikits
之前,你需要初始化 Agora SDK。通常,你需要在应用的入口处进行初始化:import 'package:agora_rtc_engine/agora_rtc_engine.dart'; import 'package:wend_agora_uikits/wend_agora_uikits.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); // 初始化 Agora SDK await AgoraRtcEngine.create('YOUR_APP_ID'); runApp(MyApp()); }
-
使用
AgoraUIKit
组件wend_agora_uikits
提供了一个AgoraUIKit
组件,你可以直接使用它来显示音视频通话的 UI。import 'package:flutter/material.dart'; import 'package:wend_agora_uikits/wend_agora_uikits.dart'; class VideoCallScreen extends StatelessWidget { final String channelName; final String token; VideoCallScreen({required this.channelName, required this.token}); @override Widget build(BuildContext context) { return Scaffold( body: AgoraUIKit( appId: 'YOUR_APP_ID', channelName: channelName, token: token, onCallEnd: () { // 通话结束后的回调 Navigator.pop(context); }, ), ); } }
-
启动音视频通话
你可以在应用的某个页面中启动音视频通话,例如:
Navigator.push( context, MaterialPageRoute( builder: (context) => VideoCallScreen( channelName: 'test_channel', token: 'YOUR_TOKEN', ), ), );
自定义 UI
wend_agora_uikits
提供了一些可自定义的选项,允许你根据需求调整 UI 的外观和行为。
layoutType
: 设置布局类型,例如网格布局、浮动布局等。showMicrophoneButton
: 是否显示麦克风按钮。showCameraButton
: 是否显示摄像头按钮。showEndCallButton
: 是否显示结束通话按钮。
AgoraUIKit(
appId: 'YOUR_APP_ID',
channelName: 'test_channel',
token: 'YOUR_TOKEN',
layoutType: LayoutType.grid,
showMicrophoneButton: true,
showCameraButton: true,
showEndCallButton: true,
onCallEnd: () {
Navigator.pop(context);
},
);
处理事件
wend_agora_uikits
提供了一些回调函数,允许你处理通话中的各种事件,例如:
onCallEnd
: 通话结束时触发。onUserJoined
: 有用户加入时触发。onUserOffline
: 用户离开时触发。
AgoraUIKit(
appId: 'YOUR_APP_ID',
channelName: 'test_channel',
token: 'YOUR_TOKEN',
onCallEnd: () {
// 通话结束后的处理
},
onUserJoined: (int uid) {
// 用户加入时的处理
},
onUserOffline: (int uid) {
// 用户离开时的处理
},
);