flutter - 如何在 Flutter 上布局 Agora 视频屏幕?
问题描述
如何布局屏幕,使其仅出现在 Flutter App 的角落?我只需要 4 个视频盒供其他用户使用。
解决方案
正如此处的快速入门指南所述:https ://github.com/AgoraIO-Community/Agora-Flutter-Quickstart/
您可以使用 Column 小部件将 4 个视频放置在 4 个不同的角落
/// Helper function to get list of native views List<Widget>
_getRenderViews() {
final List<AgoraRenderWidget> list = [
AgoraRenderWidget(0, local: true, preview: true),
];
_users.forEach((int uid) => list.add(AgoraRenderWidget(uid)));
return list; }
/// Video view wrapper Widget _videoView(view) {
return Expanded(child: Container(child: view)); }
/// Video view row wrapper Widget _expandedVideoRow(List<Widget> views) {
final wrappedViews = views.map<Widget>(_videoView).toList();
return Expanded(
child: Row(
children: wrappedViews,
),
); }
/// Video layout wrapper Widget _viewRows() {
final views = _getRenderViews();
switch (views.length) {
case 1:
return Container(
child: Column(
children: <Widget>[_videoView(views[0])],
));
case 2:
return Container(
child: Column(
children: <Widget>[
_expandedVideoRow([views[0]]),
_expandedVideoRow([views[1]])
],
));
case 3:
return Container(
child: Column(
children: <Widget>[
_expandedVideoRow(views.sublist(0, 2)),
_expandedVideoRow(views.sublist(2, 3))
],
));
case 4:
return Container(
child: Column(
children: <Widget>[
_expandedVideoRow(views.sublist(0, 2)),
_expandedVideoRow(views.sublist(2, 4))
],
));
default:
}
return Container(); }
推荐阅读
- c# - EF Core + enum 参数在 where 查询
- algorithm - Q:AMPL语法错误:如何在变量定义中写公式
- flutter - 颤振对话框有问题,在发现错误后显示黑页
- html - 如何将一个值相乘,然后将该数字乘以十,然后将结果除以三,然后将结果转换为百分比?
- c++ - 如何编写快捷方式来在 Vim 的单独终端窗口中编译和运行程序?
- python - 使用 Python 将数据从 Dropbox 上传并解压缩到我的 PC
- android - 如何为 android os 编写 SELinux Policy 以允许应用程序读/写
- javascript - JS将MySQL行读入多维数组
- c++ - 如何将 QGraphicsDropShadowEffect 添加到 Painter 对象
- blockchain - 我们如何知道添加到区块链中的信息是真实的?